Не заполняется характеристика в строке документа
Здравствуйте. Столкнулся с проблемой : не заполняется строка характеристика при добавлении новой строки в тч документа. При изменении этой строки характеристика обновляется и добавляется, не работает именно с новой строкой. Хотя в отладчике показывает, что значение присвоено. Пробовал и Расш1_ТоварыНоменклатураПриИзмененииВместо, и Расш1_ТоварыНоменклатураПриИзмененииПосле, результат идентичный. Подскажите, пожалуйста, что не так делаю?
&НаКлиенте
Процедура Расш1_ТоварыНоменклатураПриИзмененииПеред(Элемент)
СтрокаТабличнойЧасти = Элементы.Запасы.ТекущиеДанные;
СтрокаТабличнойЧасти.Характеристика = ПолучитьХарактеристику(СтрокаТабличнойЧасти .Номенклатура);
КонецПроцедуры;
&НаСервере
Функция ПолучитьХарактеристику(Номенклатура)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Владелец", СокрЛП(Номенклатура));
Запрос.Текст = "ВЫБРАТЬ
| ХарактеристикиНоменклатуры.Характеристика КАК Характеристика
|ИЗ
| Справочники.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|ГДЕ
| ХарактеристикиНоменклатуры.Владелец= &Владелец";
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат Выборка.Характеристика;
Иначе
Возврат Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
КонецЕсли;
КонецФункции
ПоказатьПо теме из базы знаний
- Загрузка данных из табличного документа в справочники, документы, планы видов характеристик, планы видов расчетов, планы счетов, бизнес-процессы, задачи, в движения документов, поточная загрузка документов (EXCEL, управляемые формы, универсальная)
- Универсальный передаточный документ для Управление торговлей релиза 10.3.21.1 (бета для УТ 10.3.30.2) - печатная форма 2 в 1 альтернатива счету фактуре и расходной накладной.
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Перенос документов Установка цен номенклатуры с наполнением характеристиками в базе получателе
- "Установка цен номенклатуры в 1С: УТ 11" - загрузка цен из файла Excel в документ (Ценообразование 11.5 и 11.0)
Найденные решения
Всем спасибо! Решил задачу :
ХарактеристикаНоменклатуры = ПолучитьХарактеристику(СтрокаТабличнойЧасти.Номенклатура);
СтруктураДанные.Вставить("Характеристика", ХарактеристикаНоменклатуры);
Если СтруктураДанные.ИспользоватьХарактеристики Тогда
Если ПодборНоменклатурыИзСписка И ТипЗнч(СтруктураВыбораНоменклатуры) = Тип("Структура") Тогда
СтрокаТабличнойЧасти.Характеристика = СтруктураВыбораНоменклатуры.Характеристика;
Иначе
СтрокаТабличнойЧасти.Характеристика = СтруктураДанные.Характеристика;
КонецЕсли;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Доброго дня. Была подобная проблема. Но на сто процентов не вспомню как решил. Но по-моему что то из этого
Обновить данные формы:
ЭтаФорма.Прочитать();
Обновить данные списка (динамического списка) на форме:
Элементы.Список.Обновить();
Обновить содержание элементов управления:
ЭтаФорма.ОбновитьОтображениеДанных();
Обновить данные формы:
ЭтаФорма.Прочитать();
Обновить данные списка (динамического списка) на форме:
Элементы.Список.Обновить();
Обновить содержание элементов управления:
ЭтаФорма.ОбновитьОтображениеДанных();
1. Однозначно делать После, даже если это не влияет на результат. Перед - правильно использовать, если надо подкорректировать какие-то данные используемые в основной конфигурации, для достижения 100% гарантии добавления - лучше и правильней После
2. Сам подход, заполнять характеристику при изменении номенклатуры, порочен. Характеристики на то и включают, чтобы передать какие-то различные свойства одного товара. Т.е. у номенклатуры практически всегда несколько характеристик, иначе в них нет смысла. Запрос вернет (и, скорей всего, возвращает) НЕСКОЛЬКО значений. Поэтому и не может отобразить.
Так что характеристики однозначно устанавливать руками. Ну или программно, но тогда нужен какой-то третий признак для правильной выборки только одного значения характеристики
Кстати, Попробуй вставить цикл Пока Выборка.Следующий(), почти уверен, все заполнится последним значением характеристики
2. Сам подход, заполнять характеристику при изменении номенклатуры, порочен. Характеристики на то и включают, чтобы передать какие-то различные свойства одного товара. Т.е. у номенклатуры практически всегда несколько характеристик, иначе в них нет смысла. Запрос вернет (и, скорей всего, возвращает) НЕСКОЛЬКО значений. Поэтому и не может отобразить.
Так что характеристики однозначно устанавливать руками. Ну или программно, но тогда нужен какой-то третий признак для правильной выборки только одного значения характеристики
Кстати, Попробуй вставить цикл Пока Выборка.Следующий(), почти уверен, все заполнится последним значением характеристики
(8)
Попробуй вставить цикл Пока Выборка.Следующий()
попробовал, у некоторой номенклатуры только одна характеристика, возвращается оно, но в строку не добавляется, пока не запишу документ в колонке характеристика пустое значение. А у номенклатуры с несколькими х-ками возвращает последнее значение, но оно все равно не проставляется до записи.
Всем спасибо! Решил задачу :
ХарактеристикаНоменклатуры = ПолучитьХарактеристику(СтрокаТабличнойЧасти.Номенклатура);
СтруктураДанные.Вставить("Характеристика", ХарактеристикаНоменклатуры);
Если СтруктураДанные.ИспользоватьХарактеристики Тогда
Если ПодборНоменклатурыИзСписка И ТипЗнч(СтруктураВыбораНоменклатуры) = Тип("Структура") Тогда
СтрокаТабличнойЧасти.Характеристика = СтруктураВыбораНоменклатуры.Характеристика;
Иначе
СтрокаТабличнойЧасти.Характеристика = СтруктураДанные.Характеристика;
КонецЕсли;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот