Имя: Пароль:
1C
1С v8
Как создать цены? Через док или РС
0 bebibo
 
28.08.20
14:29
Всем доброго времени суток. Подскажите пожалуйста.
Нужно установить цены на номенклатуру в ут11, программно
Как это делать? Создавать документ:

    СоздДокумент = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    
    СоздДокумент.Дата = Объект.ДатаУстановкиЦен;
    СоздДокумент.Согласован = Истина;
    СоздДокумент.Ответственный = Пользователи.ТекущийПользователь();
    СоздДокумент.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
    Для каждого тов из МоиТовары Цикл
        Для строкаТП = 1 По всегоСтрок Цикл
            
            Если МоиТовары .Получить(3).Получить(строкаТП) <> "DESCRIPTION" тогда
                НоваяСтр = СоздДокумент.Товары.Добавить();    
                НоваяСтр.ВидЦены = Объект.ВидЦены;
                СсылкаНаНоменклатуру = Справочники.Номенклатура.НайтиПоНаименованию(МоиТовары .Получить(1).Получить(строкаТП));
                НоваяСтр.Номенклатура = СсылкаНаНоменклатуру;
                НоваяСтр.Цена =  МоиТовары .Получить(4).Получить(строкаТП);
        КонецЕсли;
    КонецЦикла;
    КонецЦикла;
СоздДокумент.Записать(РежимЗаписиДокумента.Проведение);


Или это делается  регистром сведений?? как то так:
НовыйДокументУстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДокументУстановкаЦенНоменклатуры.Дата = ТекущаяДата();
ТаблицаТовары = ЭтотОбъект.Товары;
ВидЦеныНоменклатуры = Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная");
Для Каждого ЭлементТаблицаТовары Из ТаблицаТовары Цикл
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(НовыйДокументУстановкаЦенНоменклатуры);
НаборЗаписей.Добавить();
НаборЗаписей.Период = НовыйДокументУстановкаЦенНоменклатуры.Дата();
НаборЗаписей.ВидЦены = ВидЦеныНоменклатуры;
НаборЗаписей.Номенклатура = ЭлементТаблицаТовары.Номенклатура;
НаборЗаписей.Характеристика = ЭлементТаблицаТовары.Характеристика;
НаборЗаписей.Цена = ЭлементТаблицаТовары.Цена;
НаборЗаписей.Упаковка = ЭлементТаблицаТовары.Упаковка;
НаборЗаписей.Валюта = ВидЦеныНоменклатуры.ВалютаЦены;
НаборЗаписей.Записать();
КонецЦикла;
1 ДенисЧ
 
28.08.20
14:30
Разумеется, через документ
2 bebibo
 
28.08.20
14:32
(1) пишет что запись в РС существует, хотя там ничего нет + консолью запросов тоже пусто
3 piter3
 
28.08.20
14:34
может проще загрузить из экселя ТЧ и не мучаться?
4 bebibo
 
28.08.20
14:36
СоздДокумент.Записать(); - вот так не ругается  и записывается, но мне нужно провести, поэтому я делаю так:
СоздДокумент.Записать(РежимЗаписиДокумента.Проведение); - ругается что запись есть, хотя в РС пусто!!
5 bebibo
 
28.08.20
14:40
ой, у меня по коду косяк, цикл по одно номенклатуре по несколько раз ходит и пишет в ТЧ)))
6 mikecool
 
28.08.20
14:42
(5) ищи - у тебя там не один косяк
7 bebibo
 
28.08.20
14:45
(6) какой еще??
8 Kesim
 
28.08.20
14:47
(3) +1
9 bebibo
 
28.08.20
14:50
(8) да всё получилось)
А из экселя как? Выгрузить из экселя данные и выгрузить в ТЧ документа?
10 piter3
 
28.08.20
15:00
(9) Ага,ну раз сделал то ладно