Вот полный код
Нужно чтобы в РегистрыСведений.КодПечатиЯрлыка
добавлять записи, которые хранит Измерение- "Номенклатура" и Ресурс - "КодПечати"
Написал такой код в цикле, но данные не добавляются и не создается регистр вообще
)ФормаНоменклатуры = Справочники.Номенклатура.ПолучитьФормуВыбораГруппы();
ФормаНоменклатуры.Заголовок = "Выберите группу номенклатуры";
ФормаНоменклатуры.РежимВыбора = Истина;
Группа = ФормаНоменклатуры.ОткрытьМодально();
Если Товары.Количество() > 0 Тогда
ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?";
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да, Метаданные().Представление());
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Товары.Очистить();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТипЦен) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Не выбран тип цен номенклатуры");
// Ничего делать не надо
Возврат;
КонецЕсли;
// Заполним все требуемые реквизиты
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаЦен", Дата);
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
Запрос.УстановитьПараметр("Ложь", Ложь);
Запрос.УстановитьПараметр("Группа", Группа);
Текст =
"ВЫБРАТЬ
| СправочникНоменклатура.Ссылка КАК Номенклатура,
| ВЫБОР
| КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL
| ТОГДА 0
| ИНАЧЕ ЦеныНоменклатуры.Цена
| КОНЕЦ КАК Цена,
| ВЫБОР
| КОГДА ЦеныНоменклатуры.Валюта ЕСТЬ NULL
| ТОГДА ТипыЦенСправочник.ВалютаЦены
| ИНАЧЕ ЦеныНоменклатуры.Валюта
| КОНЕЦ КАК Валюта,
| СправочникНоменклатура.Артикул
|ИЗ
| Справочник.Номенклатура КАК СправочникНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЦен, ТипЦен = &ТипЦен) КАК ЦеныНоменклатуры
| ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатуры.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТипыЦенНоменклатуры КАК ТипыЦенСправочник
| ПО (ЦеныНоменклатуры.ТипЦен = ТипыЦенСправочник.Ссылка)
|ГДЕ
| СправочникНоменклатура.ЭтоГруппа = &Ложь";
Если ЗначениеЗаполнено(Группа) Тогда
Текст = Текст +
" И
| СправочникНоменклатура.Ссылка В ИЕРАРХИИ (&Группа)
|";
КонецЕсли;
Запрос.Текст = Текст;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтруктураОтбора = Новый Структура();
СтруктураОтбора.Вставить("Номенклатура", Выборка.Номенклатура);
СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(Товары, СтруктураОтбора);
Если СтрокаТабличнойЧасти = Неопределено и Выборка.Артикул = артикул Тогда
СтрокаТабличнойЧасти = Товары.Добавить();
СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
КонецЕсли;
ТекущиеЗначение = РегистрыСведений.КодПечатиЯрлыка.СоздатьНаборЗаписей();
ТекущиеЗначение.Добавить();
ТекущиеЗначение.Номенклатура=Выборка.Номеклатура;
ТекущиеЗначение.КодПечати = КодПечати;
КонецЦикла;
.
ПоказатьНужно чтобы в РегистрыСведений.КодПечатиЯрлыка
добавлять записи, которые хранит Измерение- "Номенклатура" и Ресурс - "КодПечати"
Написал такой код в цикле, но данные не добавляются и не создается регистр вообще
ТекущиеЗначение = РегистрыСведений.КодПечатиЯрлыка.СоздатьНаборЗаписей();
ТекущиеЗначение.Добавить();
ТекущиеЗначение.Номенклатура=Выборка.Номеклатура;
ТекущиеЗначение.КодПечати = КодПечати;
По теме из базы знаний
- Загрузка номенклатуры в УТ11, КА 2, ERP 2, Розница 2 из Excel. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки
- Регистры сведений 1С. Как это устроено.
- Ввод склонений представлений объектов
- Универсальная выгрузка – загрузка документов, справочников и регистров с возможностью шифрования (криптография в 1С)
- Загрузка справочника Номенклатура из Excel, дополнительных реквизитов и сведений, штрихкодов, начальных остатков, цен номенклатуры
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Синтакс помощник:
КурсыВалют = РегистрыСведений.КурсыВалют;
НаборКурсов = КурсыВалют.СоздатьНаборЗаписей();
Доллар = Справочники.Валюты.НайтиПоНаименованию("USD");
НаборКурсов.Отбор.Валюта.Установить(Доллар);
НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата()));
НаборКурсов.Прочитать();
Если НаборКурсов.Количество() = 0 Тогда
НовыйКурс = НаборКурсов.Добавить();
НовыйКурс.Валюта = Доллар;
НовыйКурс.Период = ТекущаяДата();
ИначеЕсли НаборКурсов.Количество() = 1 Тогда
НовыйКурс = НаборКурсов[0];
Иначе
Предупреждение(НСтр("ru = 'Курс валюты задается один раз в день.';"
+ " en = 'Rate is set once a day.'"), 60);
Возврат;
КонецЕсли;
НовыйКурс.Курс = 31.44;
НовыйКурс.Кратность = 1;
НаборКурсов.Записать();
Сообщить(НСтр(ru = 'Курс '; en = 'Rate ')
+ СокрЛП(НовыйКурс.Валюта)
+ НСтр(ru = ' на сегодня: "+"; en = ' for today: ')
+ НовыйКурс.Курс + НСтр(ru = ' руб.'; en = ' roub.'"));
Показать
Попробуйте так
ТекущиеЗначение = РегистрыСведений.КодПечатиЯрлыка.СоздатьНаборЗаписей();
ТекущиеЗначение.Отбор.Номенклатура.Установить(Выборка.Номеклатура);
ТекущиеЗначение.Прочитать();
Если ТекущиеЗначение.Количество()Тогда
ТекущиеЗначение[0].Номенклатура = Выборка.Номеклатура;
ТекущиеЗначение.КодПечати = КодПечати;
Иначе
ТекущиеЗначение.Добавить();
ТекущиеЗначение.Номенклатура=Выборка.Номеклатура;
ТекущиеЗначение.КодПечати = КодПечати;
КонецЕсли;
ТекущиеЗначение.Записать(Ложь);
Показать
Попробуйте заменить на это
ТекущиеЗначение = РегистрыСведений.КодПечатиЯрлыка.СоздатьНаборЗаписей();
ТекущиеЗначение.Отбор.Номенклатура.Установить(Выборка.Номенклатура);
ТекущиеЗначение.Прочитать();
Если ТекущиеЗначение.Количество()Тогда
ТекущиеЗначение[0].Номенклатура = Выборка.Номенклатура;
ТекущиеЗначение.КодПечати = КодПечати;
Иначе
ТекущиеЗначение.Добавить();
ТекущиеЗначение.Номенклатура=Выборка.Номенклатура;
ТекущиеЗначение.КодПечати = КодПечати;
КонецЕсли;
ТекущиеЗначение.Записать(Ложь);
Показать
(12)
{Документ.ВидПечати.Форма.ФормаДокументаДляПечатиВид.Форма(96)}: Ошибка при вызове метода контекста (Записать)
ТекущиеЗначение.Записать(Ложь);
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: КодПечати: (Регистр сведений: Код печати ярлыка; Поле: Номенклатура)
ТекущиеЗначение[0].КодПечати = КодПечати;
{Документ.ВидПечати.Форма.ФормаДокументаДляПечатиВид.Форма(96)}: Ошибка при вызове метода контекста (Записать)
ТекущиеЗначение.Записать(Ложь);
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: КодПечати: (Регистр сведений: Код печати ярлыка; Поле: Номенклатура)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот