Добавление записей в подчинённый регистр сведений "ЦеныНоменклатуры"
Доброго времени суток. Прошу подсказать куда копать.
1С 8.3 УТ 10.3 Обычные формы.
Пишу обработку загрузки цен с Excel.
Всё готово за исключением того, что не могу найти инфу, как правильно загружать данные в подчинённый регистр.
Регистр - ЦеныНоменклатуры, регистратор - УстановкаЦенНоменклатуры.
При попытке записи, ошибок нет, при открытии документа (Установка цен номенклатуры) куда производилась запись - пусто.
Код:
1С 8.3 УТ 10.3 Обычные формы.
Пишу обработку загрузки цен с Excel.
Всё готово за исключением того, что не могу найти инфу, как правильно загружать данные в подчинённый регистр.
Регистр - ЦеныНоменклатуры, регистратор - УстановкаЦенНоменклатуры.
При попытке записи, ошибок нет, при открытии документа (Установка цен номенклатуры) куда производилась запись - пусто.
Код:
ВыбранныйРегистратор = УстановщикЦен;
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("УТ000109245");
НоваяЗапись.Цена = 15;
НоваяЗапись.ЕдиницаИзмерения = Справочники.Номенклатура.НайтиПоКоду("УТ000109245").ЕдиницаХраненияОстатков;
НоваяЗапись.Валюта = Валюты.Ссылка;
НоваяЗапись.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
НоваяЗапись.Период = ВыбранныйРегистратор.Дата;
НоваяЗапись.Регистратор = ВыбранныйРегистратор;
НаборЗаписей.Записать(Ложь);
ПоказатьНайденные решения
Ещё раз всем спасибо за ответы, примеры и подсказки.
В итоге код загрузки цен в документ (УстановкаЦенНоменклатуры) выглядит так:
И так как скорее всего заполнение будет происходить в цикле, после завершения цикла, нужно будет провести изменённый документ.
Ранее пользовался готовой обработкой, где этого не было реализовано и приходилось "вручную", через открытие документа, проводить его через ОК.
В итоге код загрузки цен в документ (УстановкаЦенНоменклатуры) выглядит так:
ОбъектДок = УстановщикЦен.ПолучитьОбъект(); //Получаю объект через ссылку
НоваяСтрока = ОбъектДок.Товары.Добавить(); //добавление строк в табличный документ "Товары"
//Далее идут реквизиты табличного поля, в моём случае табличного поля "Товары", все они обязательны к заполнению, а иначе АИШБКА!
НоваяСтрока.Номенклатура = ИщемВ1С; // ссылка на товар в номенклатуре
НоваяСтрока.Цена = Число(БерёмЦены); // переменная цены взятая из нужной ячейки
НоваяСтрока.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная"); //поиск нужного типа цен
НоваяСтрока.Валюта = Валюты.Ссылка; // ссылка на выбранную валюту
НоваяСтрока.ЕдиницаИзмерения = ИщемВ1С.ЕдиницаХраненияОстатков; //т.к. код единицы хранения остатков уникален, взял его через реквизит по ссылке
ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
ПоказатьИ так как скорее всего заполнение будет происходить в цикле, после завершения цикла, нужно будет провести изменённый документ.
ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
Ранее пользовался готовой обработкой, где этого не было реализовано и приходилось "вручную", через открытие документа, проводить его через ОК.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Конечно пусто. В сам документ ничего не записывали. Использовали ссылку на документ для записи в РС. В самом РС записи будут, но в документе ничего не будет. И при перепроведение документа все записанные тиким способом записи в РС пропадут.
Хотите видет данные в документе, заполняйте сам документ и проводите его. Тогда данные будут как в документе, так и в РС.
При попытке записи, ошибок нет, при открытии документа куда производилась запись - пусто.
Конечно пусто. В сам документ ничего не записывали. Использовали ссылку на документ для записи в РС. В самом РС записи будут, но в документе ничего не будет. И при перепроведение документа все записанные тиким способом записи в РС пропадут.
Хотите видет данные в документе, заполняйте сам документ и проводите его. Тогда данные будут как в документе, так и в РС.
Задача на самом деле проста.
Есть присланный поставщиком файл Excel с артикулами и ценами, которые впоследствии копируются и вставляются в готовые поля табличного документа в обработке.
В 1С есть документ: УстановщикЦенНоменклатуры, где около 100 документов с ценами на разные бренды.
Ну и желание записывать цены в документ, через собственно-кривонаписанную обработку.
Т.к. часто необходимо быстро обновить цены на 5к товаров за пол часа, что в ручном режиме недостижимо.
Обработка в целом готова, реализация перебора нужных ячеек реализована, проверка на совпадения, другие условия и пр.
Единственное, поиск не дал нужного ответа, как правильно добавлять данные в этот самый документ (УстановкаЦенНоменклатуры).
Есть присланный поставщиком файл Excel с артикулами и ценами, которые впоследствии копируются и вставляются в готовые поля табличного документа в обработке.
В 1С есть документ: УстановщикЦенНоменклатуры, где около 100 документов с ценами на разные бренды.
Ну и желание записывать цены в документ, через собственно-кривонаписанную обработку.
Т.к. часто необходимо быстро обновить цены на 5к товаров за пол часа, что в ручном режиме недостижимо.
Обработка в целом готова, реализация перебора нужных ячеек реализована, проверка на совпадения, другие условия и пр.
Единственное, поиск не дал нужного ответа, как правильно добавлять данные в этот самый документ (УстановкаЦенНоменклатуры).
Прикрепленные файлы:

(10) создаете новый документ УстановщикЦенНоменклатуры и заполняете. Затем проводите.
Как подробно заполнять документ никто не подскажет, так как похоже конфигурация самописная. Но общий алгоритм такой:
- создается новый документ.
- заполняются обязательные реквизиты документа.
- заполняется ТЧ документа.
- проводится документ.
Обычно этого достаточно.
Как подробно заполнять документ никто не подскажет, так как похоже конфигурация самописная. Но общий алгоритм такой:
- создается новый документ.
- заполняются обязательные реквизиты документа.
- заполняется ТЧ документа.
- проводится документ.
Обычно этого достаточно.
Если нужно редактировать старый документ, тогда
ДокументОбъект=СсылкаНаДокумент.ПолучитьОбъект();
ДокументОбъект.НужныйРеквизит=НужноеЗначениеДляНужногоРеквизита;
ДокументОбъект.записать(РежимЗаписиДокумента.Проведение);
Ещё раз всем спасибо за ответы, примеры и подсказки.
В итоге код загрузки цен в документ (УстановкаЦенНоменклатуры) выглядит так:
И так как скорее всего заполнение будет происходить в цикле, после завершения цикла, нужно будет провести изменённый документ.
Ранее пользовался готовой обработкой, где этого не было реализовано и приходилось "вручную", через открытие документа, проводить его через ОК.
В итоге код загрузки цен в документ (УстановкаЦенНоменклатуры) выглядит так:
ОбъектДок = УстановщикЦен.ПолучитьОбъект(); //Получаю объект через ссылку
НоваяСтрока = ОбъектДок.Товары.Добавить(); //добавление строк в табличный документ "Товары"
//Далее идут реквизиты табличного поля, в моём случае табличного поля "Товары", все они обязательны к заполнению, а иначе АИШБКА!
НоваяСтрока.Номенклатура = ИщемВ1С; // ссылка на товар в номенклатуре
НоваяСтрока.Цена = Число(БерёмЦены); // переменная цены взятая из нужной ячейки
НоваяСтрока.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная"); //поиск нужного типа цен
НоваяСтрока.Валюта = Валюты.Ссылка; // ссылка на выбранную валюту
НоваяСтрока.ЕдиницаИзмерения = ИщемВ1С.ЕдиницаХраненияОстатков; //т.к. код единицы хранения остатков уникален, взял его через реквизит по ссылке
ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
ПоказатьИ так как скорее всего заполнение будет происходить в цикле, после завершения цикла, нужно будет провести изменённый документ.
ОбъектДок.Записать(РежимЗаписиДокумента.Проведение);
Ранее пользовался готовой обработкой, где этого не было реализовано и приходилось "вручную", через открытие документа, проводить его через ОК.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот