Имя: Пароль:
1C
 
ЭДО при поступлении товара не заполняется Характеристика
0 Sanchez_22
 
05.12.25
10:52
Добрый день, БП 3.0, про создании Поступления товаров и услуг, как сделать так, чтобы Номенклатура создавалось вместе с Характеристикой и было наименование + размер (характеристика)
Насколько понимаю, в БУХ нету учета по характеристикам, как настроить автозаполнение?
1 Sanchez_22
 
05.12.25
10:45
сейчас заполняется вот так
2 Sanchez_22
 
05.12.25
10:55
т.е мне надо как-то настроить, что когда создается Номенклатура по поставщику, заполнялось Наименование с Характеристикой (т.е размер)
3 Волшебник
 
05.12.25
10:57
Объект.Наименование = Наименование + ?(Характеристика<>"", ", " + Характеристика, "");
4 Sanchez_22
 
05.12.25
11:12
(3) спасибо большое!
5 Sanchez_22
 
05.12.25
11:12
т.е только доработка решает данную задачу?
6 Волшебник
 
05.12.25
11:13
(5) Можно без доработок, если есть бузинная палочка.
7 Sanchez_22
 
05.12.25
11:14
(6) магией не владеем пока(
8 Sanchez_22
 
10.12.25
15:58
Добрый день еще раз!
Помогите новичку в программировании, как мне реализовать данную задачу.
Требуется:
При сопоставлении номенлкатуры поставщика, сделать так, чтобы по нажатию кнопки (ее я добавил), создавалась номенклатура, в Названии номенклатуры дополнительно проставлялась характеристика
Направьте пжл в нужную сторону, как мне это реализовать
Конфиуграция БП 3.0
9 d4rkmesa
 
10.12.25
16:33
(8) Допишите обработку заполнения или без нее укажите, что надо заполнить:
https://its.1c.ru/db/pubv8devui/content/131/hdoc

зы: На дворе конец 2025, а у 1С в БЭД 1.9 все так же не сопоставляется нормально номенклатура. )
10 Sanchez_22
 
10.12.25
16:36
(9) а как мне получаить значение Характеристики тогда?
11 d4rkmesa
 
10.12.25
16:43
(10) У вас в этой форме откуда-то выводится Данные "ПАРТНЕР ТЕКСТИЛЬ ООО". Создавайте общее наименование (Номенклатура+Характеристика по данным контрагента) как в (3) .
12 Sanchez_22
 
10.12.25
16:48
(9) а тут как я понимаю типовая обработка заполнения данных? немного не понял, что она делает.
13 Sanchez_22
 
11.12.25
09:25
(9) прощу прощения за глупый вопрос, а раз у меня уже и так все данные получаются Номенклатура, Характеристика и т д, я могу код типовой обработки добавить в расширение и поменять там просто формирование  Наименования как советовали выше?
14 d4rkmesa
 
11.12.25
09:46
(13) Можете, но конкретное место, где это находится, я не подскажу. А так, &ИзменениеИКонтроль в помощь.
15 Sanchez_22
 
11.12.25
10:07
(14) спасибо! а как будет определяться, какой именно код выполняется: типовой или мой?
Т.е у меня в типовом останется Наименование как есть, а в Расширении уже исправленное как надо. Что будет в таком случае?
Верно ли понимаю, что код расширения замещает типовой код?
16 Sanchez_22
 
11.12.25
11:41
(14) я нашел, но не могу сообразить то это или нет. Сделал ctrl +F НаименованиеНоменклатуры нашел следующие:
1.
Функция НоваяТаблицаНоменклатурыКонтрагентовНаСохранение()
    
    Строка1000 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(1000));
    
    ТаблицаНоменклатуры = Новый ТаблицаЗначений;
    ТаблицаНоменклатуры.Колонки.Добавить("Владелец", Метаданные.ОпределяемыеТипы.ВладелецНоменклатурыБЭД.Тип);
    ТаблицаНоменклатуры.Колонки.Добавить("Идентификатор",  Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(300)));
    ТаблицаНоменклатуры.Колонки.Добавить("НаименованиеНоменклатуры", Строка1000);
    ТаблицаНоменклатуры.Колонки.Добавить("НаименованиеХарактеристики", Строка1000);
    ТаблицаНоменклатуры.Колонки.Добавить("НаименованиеУпаковки", Строка1000);
    
    Возврат ТаблицаНоменклатуры;
    
КонецФункции
2.&НаСервере
Процедура СохранитьСопоставленнуюНоменклатуруКонтрагентов(Отказ)
        
    ТаблицаНоменклатурыКонтрагентовНаСохранение = НоваяТаблицаНоменклатурыКонтрагентовНаСохранение();
    ВариантУказанияНоменклатураКонтрагента = СопоставлениеНоменклатурыКонтрагентовКлиентСервер.ВариантУказанияНоменклатураКонтрагента();
    
    ОтборЭлементовДляСохранения = Новый Структура;
    ОтборЭлементовДляСохранения.Вставить("Сопоставлено", Истина);
    ОтборЭлементовДляСохранения.Вставить("Сохранено"   , Ложь);
    ОтборЭлементовДляСохранения.Вставить("ВариантУказанияНоменклатуры", ВариантУказанияНоменклатураКонтрагента);
    ЭлементыДляСохранения = Объект.Сопоставление.НайтиСтроки(ОтборЭлементовДляСохранения);
    
    ДополнительныеПараметры = СопоставлениеНоменклатурыКонтрагентов.НовыеДополнительныеПараметрыПриЗаписиНоменклатурыКонтрагентов();
    ДополнительныеПараметры.ТребуетсяПоискСсылки = Ложь;
    ДополнительныеПараметры.ТребуетсяПоискЕдиницыИзмеренияПоОКЕИ = Ложь;
    
    ТекстОшибкиПользователю = "";
    
    Для Каждого Элемент Из ЭлементыДляСохранения Цикл
        
        ТекстОшибки = "";
        ЗаполнитьУпаковкуПоУмолчанию(Элемент);
        
        Если Не ЗначениеЗаполнено(Элемент.НоменклатураКонтрагента) Тогда
            НоваяСтрока = ТаблицаНоменклатурыКонтрагентовНаСохранение.Добавить();
            НоваяСтрока.Владелец                   = Элемент.Владелец;
            НоваяСтрока.Идентификатор              = Элемент.Идентификатор;
            НоваяСтрока.НаименованиеНоменклатуры   = Элемент.Наименование;
            НоваяСтрока.НаименованиеХарактеристики = Элемент.НаименованиеХарактеристики;
            НоваяСтрока.НаименованиеУпаковки       = Элемент.НаименованиеУпаковки;
        Иначе
            
            ЭлементНоменклатурыКонтрагента = НоменклатураКонтрагентаПоЗаписиСопоставления(Элемент);
            ЭлементНоменклатураИБ          = НоменклатураИБПоЗаписиСопоставления(Элемент);
            
            СопоставлениеНоменклатурыКонтрагентов.СоздатьОбновитьНоменклатуруКонтрагента(
                ЭлементНоменклатурыКонтрагента, ЭлементНоменклатураИБ, Отказ, ТекстОшибки, ДополнительныеПараметры);
            Если Не ПустаяСтрока(ТекстОшибки) Тогда
                ТекстОшибкиПользователю = ?(ПустаяСтрока(ТекстОшибкиПользователю), "", ТекстОшибкиПользователю + Символы.ПС) + ТекстОшибки;
            КонецЕсли;
        КонецЕсли;
        
    КонецЦикла;
    
    Если Отказ
        Или Не ЗначениеЗаполнено(ТаблицаНоменклатурыКонтрагентовНаСохранение) Тогда
        Возврат;
    КонецЕсли;
    
    Выборка = ВыборкаСсылокНоменклатурыКонтрагентовПоТаблице(ТаблицаНоменклатурыКонтрагентовНаСохранение);
        
    Для Каждого Элемент Из ЭлементыДляСохранения Цикл

        Если ЗначениеЗаполнено(Элемент.НоменклатураКонтрагента) Тогда
            Продолжить;
        КонецЕсли;
        
        ЭлементНоменклатурыКонтрагента = НоменклатураКонтрагентаПоЗаписиСопоставления(Элемент);
        ЭлементНоменклатураИБ          = НоменклатураИБПоЗаписиСопоставления(Элемент);

        ПараметрыПоиска = Новый Структура;
        ПараметрыПоиска.Вставить("Владелец"     , Элемент.Владелец);
        ПараметрыПоиска.Вставить("Идентификатор", Элемент.Идентификатор);
        Если Выборка.НайтиСледующий(ПараметрыПоиска) Тогда
            ЭлементНоменклатурыКонтрагента.НоменклатураКонтрагента = Выборка.НоменклатураКонтрагента;
        КонецЕсли;
        Выборка.Сбросить();
        
        ТекстОшибки = "";
        СопоставлениеНоменклатурыКонтрагентов.СоздатьОбновитьНоменклатуруКонтрагента(
            ЭлементНоменклатурыКонтрагента, ЭлементНоменклатураИБ, Отказ, ТекстОшибки, ДополнительныеПараметры);
            
        Элемент.НоменклатураКонтрагента = ЭлементНоменклатурыКонтрагента.НоменклатураКонтрагента;
        
        Если Не ПустаяСтрока(ТекстОшибки) Тогда
            ТекстОшибкиПользователю = ?(ПустаяСтрока(ТекстОшибкиПользователю), "", ТекстОшибкиПользователю + Символы.ПС) + ТекстОшибки;
        КонецЕсли;
        
    КонецЦикла;
        
КонецПроцедуры
3.
&НаСервере
Функция ВыборкаСсылокНоменклатурыКонтрагентовПоТаблице(ТаблицаНоменклатурыКонтрагентовНаСохранение)
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТаблицаНоменклатуры", ТаблицаНоменклатурыКонтрагентовНаСохранение);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТаблицаНоменклатуры.Владелец КАК Владелец,
    |    ТаблицаНоменклатуры.Идентификатор КАК Идентификатор,
    |    ТаблицаНоменклатуры.НаименованиеНоменклатуры КАК НаименованиеНоменклатуры,
    |    ТаблицаНоменклатуры.НаименованиеХарактеристики КАК НаименованиеХарактеристики,
    |    ТаблицаНоменклатуры.НаименованиеУпаковки КАК НаименованиеУпаковки
    |ПОМЕСТИТЬ ТаблицаНоменклатуры
    |ИЗ
    |    &ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    НоменклатураКонтрагентов.Ссылка КАК НоменклатураКонтрагента,
    |    ТаблицаНоменклатуры.Владелец КАК Владелец,
    |    ТаблицаНоменклатуры.Идентификатор КАК Идентификатор,
    |    1 КАК Приоритет
    |ИЗ
    |    ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
    |        ПО ТаблицаНоменклатуры.Владелец = НоменклатураКонтрагентов.ВладелецНоменклатуры
    |        И ТаблицаНоменклатуры.Идентификатор = НоменклатураКонтрагентов.Идентификатор
    |ГДЕ
    |    НЕ НоменклатураКонтрагентов.ПометкаУдаления
    |    И НЕ НоменклатураКонтрагентов.Недействителен
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    НоменклатураКонтрагентов.Ссылка КАК НоменклатураКонтрагента,
    |    ТаблицаНоменклатуры.Владелец КАК Владелец,
    |    ТаблицаНоменклатуры.Идентификатор КАК Идентификатор,
    |    2
    |ИЗ
    |    ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
    |        ПО ТаблицаНоменклатуры.НаименованиеНоменклатуры = НоменклатураКонтрагентов.НаименованиеНоменклатуры
    |        И ТаблицаНоменклатуры.НаименованиеХарактеристики = НоменклатураКонтрагентов.НаименованиеХарактеристики
    |        И ТаблицаНоменклатуры.НаименованиеУпаковки = НоменклатураКонтрагентов.НаименованиеУпаковки
    |        И ТаблицаНоменклатуры.Владелец = НоменклатураКонтрагентов.ВладелецНоменклатуры
    |ГДЕ
    |    НЕ НоменклатураКонтрагентов.ПометкаУдаления
    |    И НЕ НоменклатураКонтрагентов.Недействителен
    |УПОРЯДОЧИТЬ ПО
    |    Приоритет";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Возврат РезультатЗапроса.Выбрать();
    
КонецФункции

так понимаю, мне необходимо менять НаименованиеНоменклатуры во 2 пункте?
17 Sanchez_22
 
11.12.25
11:47
нашел процедуру Создания номенклатуры
&НаКлиенте
Процедура СоздатьНоменклатуру(Команда)
    
    ВыделенныеЭлементыСопоставления = Новый Массив;
    
    Для Каждого Идентификатор Из Элементы.Сопоставление.ВыделенныеСтроки Цикл
        
        Запись = Объект.Сопоставление.НайтиПоИдентификатору(Идентификатор);
        ЭлементСопоставления = ЭлементСопоставленияПоЗаписи(Запись);
        ВыделенныеЭлементыСопоставления.Добавить(ЭлементСопоставления);
        
    КонецЦикла;
    
    ПоказатьВопросОСозданииНоменклатуры(ВыделенныеЭлементыСопоставления);