Добрый день. Начал осваивать КД 3.0. Взял пустую базу, накидал туда несколько простых справочников и документов. Не могу перенести ТЧ документа.
При отправке пытаюсь заполнить ТЧ:
ТабТовары = Новый ТаблицаЗначений;
ТабТовары.Колонки.Добавить("ДанныеНоменклатуры");
ТабТовары.Колонки.Добавить("Цена");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаЦенНоменклатурыТовары.Товар КАК Товар,
| УстановкаЦенНоменклатурыТовары.Цена КАК Цена
|ИЗ
| Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
|ГДЕ
| УстановкаЦенНоменклатурыТовары.Ссылка = &Ссылка";
(1) Зачем это все писать? Открываете КД 3 и в ней интерактивно выбираете что отправлять и что получать. Кодом нужно только отправлять информацию отсутствующую в формате:
ДанныеXDTO.Вставить("AdditionalInfo", Новый Структура());
(2) Насколько я понял табличные части в КД 3.0 так не переносятся, помимо того, что Вы написали еще нужно подготовить данные. Естественно, что отправлять интерактивно я тоже выбрал.
(5) Если так, то код не нужен, который автор написал.
Если используется код, тогда в ПКС должна быть только колонка СвойствоФормата и Используется алгоритм конвертации.
(6) ПКС прописаны, да с галкой используется алгоритм конвертации, скрин сейчас не могу скинуть, не за компом сейчас. У меня по ходу конвертация старинная. Такого как на скрине RustamZz в ней нет.
Не установлено значение одного из следующих свойств: ДанныеНоменклатуры
Насколько я помню, в формате ОбщиеСвойстваДанныеНоменклатуры не Товар, а Номенклатура.
Сообщения об ошибках часто запутанные - "Проверка свойства 'Цена'" - это информация какой реквизит проверялся перед появлением ошибки. ;)
(8) В общем сделал кое как) Подсмотрел как в демо сделано. Получилось так:
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НоваяСтрока = ТабТовары.Добавить();
НоваяСтрока.Номенклатура = Новый Структура("Ссылка, Наименование", ВыборкаДетальныеЗаписи.Товар, ВыборкаДетальныеЗаписи.ТоварНаименование);
НоваяСтрока.Цена = ВыборкаДетальныеЗаписи.Цена;
КонецЦикла;
Только появились вопросы: Почему если в XDTO строка называется "ДанныеНоменклатуры", но под таким названием выдает ошибку, а "Номенклатура" прокатывает. И почему то структуру по номенклатуре требует, хотя в демо просто ВыборкаДетальныеЗаписи.Товар
(9) достаточно так НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Товар;
И в ПКС должно быть прописано ПКО.
"ДанныеНоменклатуры" это ссылка на общие свойства, которые содержат данные по номенклатуре, единице измерения.
Можно, наверное попробовать создать структуру структур "ДанныеНоменклатуры", но проще добавить Номенклатура.