"Комплексная автоматизация", обработка "Загрузка данных из табличного документа"
надо по коду номенклатуры контрагента заполнить из XLS таблицу "Товары" в поступлении товаров. номенклатура подставляется корректно с помощью "Номенклатуры контрагентов" по коду. подскажите, что нужно указать в настройках обработки для характеристики, чтобы она тоже стала подставляться. в "Номенклатуру контрагентов" она занесена.
всем спасибо за участие. сделал с помощью запроса:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ХарактеристикаНоменклатуры
|ИЗ
| РегистрСведений.НоменклатураКонтрагентов
|ГДЕ
| Контрагент = &КА
| И КодНоменклатурыКонтрагента = &КодКА";
Запрос.УстановитьПараметр("КА", СсылкаИсточника.Контрагент);
Запрос.УстановитьПараметр("КодКА", ТекстыЯчеек[7]);// номер колонки на вкладке "Табличный документ"
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Результат = Выборка.ХарактеристикаНоменклатуры;
Показать
наверное, есть в "1С" какие-то механизмы, которые позволяют эту задачу решить проще, о которых я пока не знаю. буду рад, если кто-нибудь расскажет об этом.
(2) если я правильно понял ваш вопрос, то в XLS нет колонки с наименованием характеристики (это товарная накладная от поставщика).
другое дело, что в XLS в наименовании товара есть помимо прочего и буквенно-цифровой код, который мы используем в качестве наименования в наших характеристиках. просто в "Номенклатуре контрагента" сопоставление кода поставщика с нашей номенклатурой и её характеристиками уже есть. не могу понять, как извлечь характеристику. номенклатура без проблем подставляется через "искать" "КодНоменклатурыКонтрагента" и указанием колонки с этим кодом. для характеристики ничего такого нет. там можно искать только по "Наименование".
(3) А что мешает найти по наименованию характеристику в таблице (которая есть в базе на номенклатуре)? Т.е. найдя нужную номенклатуру, перебором (привязанных характеристик к номенклатуре) подобрать нужную характеристику к найденной строке из таблицы.
(4) наверное, ничего не мешает, кроме того, что я не в курсе, как это сделать ;-)
я так понимаю, что тогда надо выставлять для реквизита "характеристика номенклатуры" режим загрузки "вычислять" и прописывать выражение. я, к сожалению, пока не разбираюсь в том, как здесь составлять выражения, хотя с SQL немного знаком. может, посоветуете, что можно почитать по этому вопросу?
по идее, надо использовать уже имеющуюся информацию из "Номенклатуры контрагентов". хотя, с другой стороны, если сделать подбор характеристики через поиск буквенно-цифрового кода в наименовании товара, то не надо будет заполнять характеристики в "номенклатуре контрагентов". но, опять же, если поставщик сменится, то у него буквенно-цифровой код уже будет совсем другим, и мы тогда не сможем подобрать нашу характеристику через поиск.
всем спасибо за участие. сделал с помощью запроса:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ХарактеристикаНоменклатуры
|ИЗ
| РегистрСведений.НоменклатураКонтрагентов
|ГДЕ
| Контрагент = &КА
| И КодНоменклатурыКонтрагента = &КодКА";
Запрос.УстановитьПараметр("КА", СсылкаИсточника.Контрагент);
Запрос.УстановитьПараметр("КодКА", ТекстыЯчеек[7]);// номер колонки на вкладке "Табличный документ"
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Результат = Выборка.ХарактеристикаНоменклатуры;
Показать
наверное, есть в "1С" какие-то механизмы, которые позволяют эту задачу решить проще, о которых я пока не знаю. буду рад, если кто-нибудь расскажет об этом.