![]() |
|
Программное заполнение Документа Установка Цен Номенклатуры | ☑ | ||
---|---|---|---|---|
0
illiona
naïve
26.05.17
✎
09:48
|
Добрый день. Помогите разобраться. Создаю программно установку цен.
Как каждому товару установить несколько цен ДокУЦ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); ДокУЦ.Дата = ТекущаяДата(); ДокУЦ.Ответственный = Пользователи.ТекущийПользователь(); ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Базовая цена поставщика"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Дилерская цена прихода"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая 1"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая 2"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Оптовая 3"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Цена спец.предложения"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; ВидЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Цена спец.предложения 2"); ТЧВидЦены = ДокУЦ.ТипыЦен.Добавить(); ТЧВидЦены.ТипЦен = ВидЦены; Читаю данные для даполнения из таблицы с формы Для каждого СтрД Из ТаблицаДанные1 Цикл НоваяСтрока = ДокУЦ.Товары.Добавить(); СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура); НоваяСтрока.Номенклатура = СпрНом; //а цен у каждого товара должно быть несколько КонецЦикла; |
|||
1
Ц_У
26.05.17
✎
09:51
|
Ctrl+V заклинило где-то вначале?
|
|||
2
Гипервизор
26.05.17
✎
10:15
|
(0) Достаточно посмотреть данный документ в конфигураторе для осознания того факта, что тип цен также является реквизитом ТЧ Товары.
|
|||
3
Михаил Козлов
26.05.17
✎
10:42
|
И обратите внимание на реквизит ТЧ "Товары" - ИндексСтрокиТаблицыЦен: для всех строк ТЧ с разными типами цен и одинаковыми остальными значениями этот реквизит одинаковый.
|
|||
4
illiona
naïve
26.05.17
✎
11:38
|
да увидела что у Товары тоже есть реквизит ТипЦен. Не пойму как из связать
|
|||
5
LienXo
26.05.17
✎
11:40
|
(4) стрТовары.ТипЦен = Справочники.ТипЦен.НайтиПоНаименованию("Розничные")
|
|||
6
illiona
naïve
26.05.17
✎
11:45
|
Для каждого СтрД Из ТаблицаДанные1 Цикл
НоваяСтрока = ДокУЦ.Товары.Добавить(); СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура); НоваяСтрока.Номенклатура = СпрНом; Для каждого Стрк из ДокУЦ.ТипыЦен Цикл Если СокрЛП(Стрк.ТипЦен.Наименование) = "Базовая цена поставщика" тогда НоваяСтрока.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(Стрк.ТипЦен.Наименование); НоваяСтрока.Цена = СтрД.БазоваяЦенаПостав; ИначеЕСЛИ СокрЛП(Стрк.ТипЦен.Наименование) = "Дилерская цена прихода" тогда НоваяСтрока.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(Стрк.ТипЦен.Наименование); НоваяСтрока.Цена= СтрД.ДилерскаяЦенаПрихода; КонецЕсли; КонецЦикла; сначало ставит в базовую, потом при добавлении затирает в базовой и ставит в дилерскую |
|||
7
Михаил Козлов
26.05.17
✎
11:53
|
(6) Вам нужно заполнить цены по 2-м типам?
Тогда: 1. Заполнить ТЧ ТипыЦен документа (2 строки) 2. Для каждого товара добавлять в ТЧ Товары 2 строки. 3. Правильно формировать реквизит ИндексСтрокиТаблицыЦен. |
|||
8
illiona
naïve
26.05.17
✎
12:00
|
а как сформировать ИндексСтрокиТаблицы?
Таблицу с типами сформировала Дальше не совсем понятно( |
|||
9
h-sp
26.05.17
✎
12:00
|
(6) вот это выкинь
НоваяСтрока.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(Стрк.ТипЦен.Наименование); напиши НоваяСтрока.ТипЦен = Стрк.ТипЦен; |
|||
10
h-sp
26.05.17
✎
12:01
|
(7) не нужно ИндексСтрокиТаблицыЦен. Оно при записи документа само проставится как нужно.
|
|||
11
LienXo
26.05.17
✎
12:07
|
Для каждого Стрк из ДокУЦ.ТипыЦен Цикл
НоваяСтрока = ДокУЦ.Товары.Добавить(); СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура); НоваяСтрока.Номенклатура = СпрНом; НоваяСтрока.ТипЦены = Стрк.ТипЦены; Если СокрЛП(Стрк.ТипЦен.Наименование) = "Базовая цена поставщика" тогда НоваяСтрока.Цена = СтрД.БазоваяЦенаПостав; Иначе ... КонецЕсли; КонецЦикла; |
|||
12
illiona
naïve
26.05.17
✎
12:23
|
Спасибо ВСЕМ. Получилось)
|
|||
13
Михаил Козлов
26.05.17
✎
12:49
|
(10) В конфигурации КА 1.1 формирование ИндексСтрокиТаблицыЦен происходит в форме документа (ПередЗаписью), а не в модуле.
|
|||
14
h-sp
26.05.17
✎
13:31
|
(13) ну или в приоткрытии
|
|||
15
Ёпрст
гуру
26.05.17
✎
13:33
|
(11) Вот этот ад адский выкинь:
СпрНом = Справочники.Номенклатура.НайтиПоНаименованию(СтрД.Номенклатура); |
|||
16
Ёпрст
гуру
26.05.17
✎
13:33
|
+15
НоваяСтрока.Номенклатура = СтрД.Номенклатура; |
|||
17
darius357
26.05.17
✎
14:34
|
ну как всегда побакланили, и нифига толку
|
|||
18
Гипервизор
26.05.17
✎
14:43
|
(17) месье не читатель? (12)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |