Мира вам.
Есть документ Поступление товаров и услуг я сделал, что бы цены которые есть в колонке Цена попадало в карточку Номенклатуры ЦеныНоменклатуры (для типа цен Закупочная) через регистр сведений ЦеныНоменклатуры
Для Каждого эл Из Товары Цикл
Движение = Движения.ЦеныНоменклатуры.Добавить();
Движение.Период = Дата;
Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("грн");
Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000015");
Движение.Номенклатура = эл.Номенклатура;
Движение.Цена = эл.Цена;
КонецЦикла;
Показать
все работает но тут появилась еще одна "хотелка", добавил колонку с полем ввода в форме документа где хочу, что бы при вводе в колонке цены (продажная будет) так же эти цены попадали в карточку номенклатуры ЦеныНоменклатуры (Тип цен РозничныйМаг№1, РозничныйМаг№2), что было и сделано
Для Каждого эл Из Товары Цикл
Движение = Движения.ЦеныНоменклатуры.Добавить();
Движение.Период = Дата;
Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("грн");
Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000011");
Движение.Номенклатура = эл.Номенклатура;
Движение.Цена = эл.ЦенаПродажная; // это добавленное поле
КонецЦикла;
Для Каждого эл Из Товары Цикл
Движение = Движения.ЦеныНоменклатуры.Добавить();
Движение.Период = Дата;
Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("грн");
Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000012");
Движение.Номенклатура = эл.Номенклатура;
Движение.Цена = эл.ЦенаПродажная;
Показать
что как бы и работает но бывает такое, что в документе не надо изменять поле ввода колонки
ЦенаПродажная и если я не ввожу в это поле значение то естественно удаляется цены с карточки номенклатура ЦеныНоменклатуры для магазинов РозничныйМаг№1, РозничныйМаг№2
я решил добавить условие в одни из последних циклов
Для Каждого эл Из Товары Цикл
Движение = Движения.ЦеныНоменклатуры.Добавить();
Движение.Период = Дата;
Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("грн");
Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000012");
Движение.Номенклатура = эл.Номенклатура;
Если эл.ЦенаПродажная = 0 Тогда
Прервать;
Иначе
Движение.Цена = эл.ЦенаПродажная;
КонецЕсли;
Показать
но тут поработав отладчиком увидел, что значение Движение.Цена при начале первого цикла в условии уже получает значение, а мне как то нужно обойти это получение и сделать так, что если я ничего не ввожу в поле эл.ЦенаПродажная то значение розничных цен оставались не измененными, не менялись.
Да, вариант добавление еще одного измерения в регистре сведений есть но тут дело в том, что при открытии карточки номенклатуры страницы ЦеныНоменклатуры происходит получение значение типов цен с измерения Цена, а не Цена1, а отследить где оно такое происходит не получается, там голову можно сломать с километровым кодом и заветвениями в десяток общих модулей и т.д.