Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 июл 2024, 21:49

Создание номенклатуры по данным контрагента

Автор igolka97, 24 фев 2019, 20:03

0 Пользователей и 1 гость просматривают эту тему.

igolka97

УТ 11.4.6.207.

В контрагенте есть справочник «Номенклатура контрагента». Я в нее с помощью обработки ЗагрузкаДанныхИзТабличногоДокумента заношу новые данные из накладных от поставщиков. У поставщика в накладных есть вся информация, необходимая этому справочнику: артикул, наименование, НДС, штрихкод и тд. В этот справочник номенклатура заводится успешно, но, разумеется, без сопоставления с номенклатурой в моей базе, но и это нормально, так как эту номенклатуру я пока и не создавал в НСИ.

Затем я выбираю весь список, и нажимаю «Сопоставить». Открывается форма для сопоставления, которая не находит соответствующую номенклатуру в моей НСИ. Это правильно. Затем я выделю один элемент и нажимаю «Создать по данным поставщика», открывается окно создания номенклатуры, но как таковых данных поставщика там автоматически не появляется, кроме артикула. Артикул встает на свое место. В справке 1С написано:

Цитировать«Кнопка Создать по данным контрагента автоматически создает новую номенклатуру для выделенных строк таблицы сопоставления. Если по каким-то причинам автоматическое создание невозможно (например, информации контрагента недостаточно), то открывается форма нового элемента номенклатуры только для текущей строки таблицы.»
Меня смутило, что номенклатуру никаким образом не создашь даже если полностью заполнить все поля у номенклатуры контрагента, поэтому я на одном из сайтов 1С нашел информацию, что речь идет о документах ЭДО, и что есть вероятность создания номенклатуры автоматически на основании ЭДО.

Опустив руки, стал искать в конфигуратор, где добавить ШК и наименование сразу при открытии формы, но так и не нашел.

igolka97

Сам решил проблему. Может кому пригодится.



Процедура НачатьСозданиеНоменклатурыИнформационнойБазыВручную(Знач НаборЭлементовСопоставления)
Для Каждого ЭлементСопоставления Из НаборЭлементовСопоставления Цикл

ПараметрыФормы = Новый Структура;

//ОбменСКонтрагентамиСлужебныйКлиентСервер.УстановитьСвойствоСтруктуры(ПараметрыФормы, "ДополнительныеПараметры.ОбменСКонтрагентами.НоменклатураКонтрагента", ЭлементСопоставления.НоменклатураКонтрагента);
                // Закоментил, так как мне ЭДО вообще не нужен

ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЭлементСопоставления.НоменклатураКонтрагента);
// Рядом передаем данные для заполнение (Дописано мною)

// Передадим через ОписаниеОповещения элемент сопоставления для анализа в обработчике события СопоставлениеОбработкаЗаписиНового.
ОбработкаЗакрытия = Новый ОписаниеОповещения(, , ЭлементСопоставления);

ОбменСКонтрагентамиСлужебныйКлиент.ОткрытьФормуНоменклатуры(ПараметрыФормы, Элементы.Сопоставление, ЭлементСопоставления, ОбработкаЗакрытия);

КонецЦикла;

КонецПроцедуры


И при открытии формы


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    .......
    .......
        Если Параметры.ЗначенияЗаполнения.Свойство("Наименование") Тогда
            Объект.Наименование = Параметры.ЗначенияЗаполнения.Наименование;
Объект.НаименованиеПолное = Параметры.ЗначенияЗаполнения.Наименование;
КонецЕсли;

Если Параметры.ЗначенияЗаполнения.Свойство("Штрихкод") Тогда
            Штрихкод = Параметры.ЗначенияЗаполнения.Штрихкод;
КонецЕсли;

Если Параметры.ЗначенияЗаполнения.Свойство("СтавкаНДС") Тогда
            Объект.СтавкаНДС = Параметры.ЗначенияЗаполнения.СтавкаНДС;
КонецЕсли;

Если Параметры.ЗначенияЗаполнения.Свойство("Артикул") Тогда
            Объект.Артикул = Параметры.ЗначенияЗаполнения.Артикул;
    КонецЕсли;
    .......
КонецПроцедуры;

Похожие темы (5)

Рейтинг@Mail.ru

Поиск