Этюды по программированию: хитрости использования дополнительных реквизитов в сериях номенклатуры УТ, КА, ERP

31.01.25

Задачи пользователя - Адаптация типовых решений

На примере создания расширения для ERP расскажем, как минимальными усилиями расширить функционал, не меняя саму конфигурацию. То же самое верно и для модификации конфигурации, использование дополнительных реквизитов позволяет значительно снизить количество кода.

Хитрости использования дополнительных реквизитов в сериях номенклатуры УТ, КА, ERP

 

Во многих проектах в сериях номенклатуры нужно хранить дополнительную информацию, например вес нетто, партию, номер катушки и  т.д.  Можно обойтись без изменений конфигурации и использовать готовый функционал, который в разы ускорит время доработки. Если же все вынести в расширение, это сильно упростит последующие обновления.

Для примера  создадим два дополнительных реквизита для серий номенклатур. Для этого откроем справочник Виды номенклатуры и в нем нажмем кнопку Добавить в окне доп. характеристик серий:  

 

 

Создайте реквизит "Номер катушки" с типом значения число (10,0) и "Вес НЕТТО"  с типом значения число (15,3):

 

 

Не забудьте сохранить в любой файл имя в разделе для разработчиков, нам оно еще не раз понадобится:

НомерКатушки_8196dc3d9b1645f5a6971b3e5ff5550f

ВесНЕТТО_eba97ccf16f14149b3d826ec7fa81648

В конфигурациях ERP,УТ,КА работа с сериями в табличной части зависит от  политики учета серий, которая задается в настройках для вида номенклатуры:

 

 

Политика может быть задана как общая, так и для каждого склада индивидуальная. Для нашего примера важно, что при учете по себестоимости в разрезе серий,

1 серия задается в каждой строке ТЧ:

 

 

В остальных случаях работа ведется через кнопку "Указать серии", тогда открывается обработка "Подбор серий номенклатуры":

 

 

В обработке можно ввести новый серии номенклатуры и удобно заполнить дополнительные реквизиты серий, которые мы задали в виде номенклатуры.

Допустим, работа с сериями готовой продукции осуществляется только из документа производство без заказа, через кнопку "Указать серии".

Если нам что-то нужно передать в обработку регистрации серий, то это лучше делать в процедуре формы документа "ОткрытьПодборСерий":

//....
		ПараметрыФормыУказанияСерий = ПараметрыФормыУказанияСерий(ИмяТЧ, ТекущиеДанныеИдентификатор);
#Вставка
        //Вставляем наши данные
        ПараметрыФормыУказанияСерий.Вставить("мо_Партия",Объект.Ссылка);
#КонецВставки

//....  

В обработке "ПодборСерийВДокументы" добавляем реквизит "мо_партия"для формы "РегистрацияИПодборСерийПоОднойСтрокеТоваров" на закладке реквизиты. Он послужит для хранения переданного значения. Аналогично добавляем реквизит мо_МаксНомерКатушки, он будет хранить последний из имеющихся номеров.

Проинициализируем реквизиты в процедуре "ПриСозданииНаСервере":

//...........
 #Вставка
Если Параметры.Свойство("мо_партия") Тогда
  мо_партия=Параметры.мо_партия;
  мо_МаксНомерКатушки=ПолучитьПоследнийНомерКатушки();
КонецЕсли;
#КонецВставки
КонецПроцедуры

При создании новой серии в ТЧ, нам нужно будет заполнить наш реквизит мо_МаксНомерКатушки. Модифицируем процедуру "СерииПриНачалеРедактирования"

&НаКлиенте
Процедура СерииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
	
	
	ТекущиеДанные = Элемент.ТекущиеДанные;
	
	ТекущаяДатаПроизводства = ТекущиеДанные.ДатаПроизводства;
	
	Если Копирование Тогда
		ТекущееКоличество = 0;
	Иначе
		ТекущееКоличество =  ТекущиеДанные.КоличествоУпаковок;
	КонецЕсли;
	
 #Вставка 
	Если НоваяСтрока Тогда
		ПолеНомерКатушки=ПолучитьПолеДополнительногоРеквизитаНаФорме("НомерКатушки_8196dc3d9b1645f5a6971b3e5ff5550f","Объект_Серии");
		Если ЗначениеЗаполнено(ПолеНомерКатушки) Тогда
		     УстановитьЗначениеДополнительногоРеквизитаНаФорме(ПолеНомерКатушки,мо_МаксНомерКатушки+1);
			 мо_МаксНомерКатушки=мо_МаксНомерКатушки+1;
		КонецЕсли;
	КонецЕсли;
  #КонецВставки
КонецПроцедуры


&НаСервере
Функция ПолучитьПолеДополнительногоРеквизитаНаФорме(ИмяРеквизита, ПрефиксТЧ="")
	СписокСвойств = ЭтаФорма[ПрефиксТЧ+"Свойства_ОписаниеДополнительныхРеквизитов"];
	Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя",ИмяРеквизита);
	Если ЗначениеЗаполнено(Свойство) Тогда
		НайденныеСтроки =СписокСвойств.НайтиСтроки(Новый Структура("Свойство",Свойство));
		Если НайденныеСтроки.Количество()>0 Тогда
			Возврат НайденныеСтроки[0].ИмяРеквизитаЗначение;
		КонецЕсли;
	КонецЕсли;
	Возврат "";
КонецФункции

&НаСервере
Процедура УстановитьЗначениеДополнительногоРеквизитаНаФорме(ПолеДополнительногоРеквизитаНаФорме,ЗначениеРеквизита)
	Если НЕ ПолеДополнительногоРеквизитаНаФорме = Неопределено Тогда 
		Элементы.Серии.ТекущиеДанные[ПолеДополнительногоРеквизитаНаФорме]= ЗначениеРеквизита;
	КонецЕсли;
КонецПроцедуры

Остается только сохранить последний введенный номер катушки. Для этого модифицируем функцию "СохранитьСериюПоСтроке"

//.....
      СправочникОбъект.Записать();
 #Вставка
      СохранитьМаксНомерКатушки(мо_МаксНомерКатушки);  
#КонецВставки      
//.....

Что в итоге.  Несколько десятков строк кода и нас есть не модифицированный код основной конфигурации и рабочий функционал работы с дополнительными данными в сериях номенклатуры, который легко переносится на любые новые релизы.

Предупреждение: Метод получения нового номера катушки сильно упрощен и служит только для демонстрации способа работы с доп. реквизитами. В реальной жизни, если два человека будут одновременно заводить серии, могут появиться дубли.

Полезные ссылки:

Если есть необходимость печатать этикетки для серий номенклатуры с учетом данных доп. реквизитов, или использовать расширенные  возможности штрихкодирования не меняя конфигурации, рекомендую: Подсистема штрихкодирования серий номенклатуры для 1С:УТ 11.4/11.5 КА, ERP 2.4/2.5 

Кстати о конфигурациях ERP,УТ,КА, вы уже добавили новые ставки НДС 5 и 7%? Если нет, то рекомендую Добавление ставок НДС 2025 - 5% и 7% - в старую ERP 2.4, 2.5, УТ 11.4, 11.5, КА 2.4, 2.5 

Другие этюды по программированию и другие публикации автора : //infostart.ru/profile/48714/

Другие разработки автора:

Подсистема штрихкодирования серий номенклатуры (УТ 11, КА, ERP)Подсистема штрихкодирования серий номенклатуры (УТ 11, КА, ERP)
Подсистема 'Входной контроль' для ERP ,КА , УТ 11
Подсистема 'Входной контроль' для ERP ,КА , УТ 11
Электронный обходной лист (расширение) для ERP, ЗУП, КА
Отправка электронных писем по задолженностям клиентов (ERP, УТ 11)Отправка электронных писем по задолженностям клиентов (ERP, УТ 11)
Excel Studio for 1CExcel Studio for 1C
Настраиваемый управленческий балансНастраиваемый управленческий баланс
Динамические отчеты СКД
Динамические отчеты СКД
Фоновая отправка уведомлений
Генератор кодаГенератор кода

См. также

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6673    17    7    

27

Производство готовой продукции (работ, услуг) Рабочее место Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бухгалтерский учет Управленческий учет Платные (руб)

Расширение "Входной контроль" в 1С:ERP, КА 2.5, УТ11.5 и предназначено для удобства отражения операций входного контроля и их результатов в учетной системе, а также фотофиксации брака.

12000 руб.

02.02.2019    37218    45    22    

42

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4696    18    1    

36

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    7464    78    17    

35

Сканер штрих-кода Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Стандартные конфигурации ERP, КА, УТ 11 позволяют работать с штрихкодированием серий. Есть только одно суровое ограничение – на упаковке должна быть этикетка для номенклатуры и отдельно для серии. Во многих случаях это критически неудобно.

12000 руб.

19.04.2021    23422    65    44    

57

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Маленькая заметка (в трех разных масштабах) для тех, кто часто видит окно при входе в ЗУП «Новые сообщения для расшифровки по 1С-Отчетность», которое появляется через 60 секунд после запуска программы, как раз когда вы уже добрались до интересующей вас формы и начали в ней что-то активно делать:

1 стартмани

17.06.2024    3370    47    Znata_PI    5    

13
Оставьте свое сообщение