УНФ 1.5.3 Создание документов Перемещение запасов на основании данных Авансового отчета

18.04.15

Учетные задачи - Логистика, склад и ТМЦ

Позволяет оперативно "раскидывать" запасы по складам на основании источника запасов - вкладки Запасы документа Авансовый отчет с учетом резервов. Внешняя обработка, являющаяся модификацией обработки заполнения табличной части документа, легко встраивается в типовую конфигурацию УНФ 1.5.3 (работоспособна и на УНФ 1.4 со слов заказчика), добавляя свою команду в документ.
Код обработки открыт. Также объясняется методика отладки внешних обработок на "специфической" конфигурации УНФ 1.5.3

Скачать исходный код

Наименование Файл Версия Размер
Заполнение запасов - Доб. заказ покупателя и резерв по нему если есть. 1.1.0
.epf 8,79Kb
6
.epf 1.1.0 8,79Kb 6 Скачать
Заполнение запасов 1.0.2
.epf 8,61Kb
5
.epf 1.0.2 8,61Kb 5 Скачать

Вначале рассмотрим исходные данные задачи. На рисунках 1 и 2 данные документа Авансовый отчет в конфигураторе и в режиме предприятия с тестовыми данными из типовой демобазы УНФ 1.5.3:

  

Рисунок 1. Документ Авансовый отчет конфигурации Управление небольшой фирмой 1.5.3

 

 Рисунок 2. Документ Авансовый отчет в конфигуработоре

Теперь на рисунках 3 и 4 посмотрим структуру приемника - документа Перемещение запасов:

 Рисунок 3. Документ Перемещение запасов конфигурации Управление небольшой фирмой 1.5.3

Рисунок 4. Документ Перемещение запасов в конфигураторе. 

Видим, что в документе-основании Авансовом отчете в табличной части запасы Склад  (реквизит СтруктурнаяЕдиница) и ячейка могут принимать различные значения, поэтому для упрощения задачи принимаем за исходную информацию первой строки. Конечно, можно усложнить задачу, запрашивая перед созданием формы документа перемещения запасов и склад и (если заполнена) ячейка, но это уже оправдывает себя при очень больших количествах строк документа. Да к тому же тут возможны ошибки. Поэтому проще оприходовать все на склад по умолчанию (возможно введением транзитного "авансового" склада), а уже потом разбираться со спецификой хранения на местах.

Для отладки данной обработки, а также ее возможных модификаций можно воспользоваться одним из отладчиков внешних печатных форм, которые поддерживают управляемых формы по технологии БСП. Здесь может ожидать "подводный камешек" отсутствия в типовой конфигурации УНФ 1.5.3 режима модальности. Можно, конечно поправить данные обработки отладки или все-таки найти нужную, но можно воспользоваться приемом временного снятия корня конфигурации с поддержки и изменением данного признака на "использовать с предупреждением" как показано на рисунке 5.

 

Рисунок 5. Изменение свойств конфигурации УНФ 1.5.3 для облегчения отладки.

Также конфигуарация УНФ имеет свои "особенности" и из-за них многие стандартные внешние обработки не регистрируются в системе или не запускаются. Для решения подобных проблем приходится лезть в конфигурацию и править обработку под особенности данной конфигурации. Тут нужно смотреть код общего модуля "Дополнительные отчеты и обработки" и сопуствующие объекты метаданных еще на входе (см. рисунок 6):

 

Рисунок 6. Виды внешних обработок. 

  

Также основная отработка исполняемого кода начинается с нижеприведенного участка кода стандартного общего модуля УНФ "Дополнительные отчеты и обработки" и код модуля управляемой формы, реализующий всю логику решения:

// Выполняет команду обработки и возвращает результат ее выполнения.
//
// Параметры:
// ПараметрыКоманды - Структура - Параметры, с которыми выполняется команда.
// * ДополнительнаяОбработкаСсылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - Элемент справочника.
// * ИдентификаторКоманды - Строка - Имя выполняемой команды.
// * ОбъектыНазначения - Массив - Ссылки объектов, для которых выполняется обработка. Обязательный для
// назначаемых обработок.
// * РезультатВыполнения - Структура - Необязательный. Дополняет возвращаемое значение.
// См. СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения().
// АдресРезультата - Строка - Необязательный. Адрес временного хранилища по которому будет размещен результат
// выполнения.
//
// Возвращаемое значение:
// * Структура - Результат выполнения, который далее передается на клиент.
// * Неопределено - Если был передан АдресРезультата.
//
// Важно:
// Проверка функциональной опции "ИспользоватьДополнительныеОтчетыИОбработки"
// должна выполняться вызывающим кодом.
//
Функция ВыполнитьКоманду(ПараметрыКоманды, АдресРезультата = Неопределено) Экспорт

Если ТипЗнч(ПараметрыКоманды.ДополнительнаяОбработкаСсылка) <> Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки")
Или ПараметрыКоманды.ДополнительнаяОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка() Тогда
Возврат Неопределено;
КонецЕсли;

ВнешнийОбъект = ПолучитьОбъектВнешнейОбработки(ПараметрыКоманды.ДополнительнаяОбработкаСсылка);

ИдентификаторКоманды = ПараметрыКоманды.ИдентификаторКоманды;

РезультатВыполнения = ВыполнитьКомандуВнешнегоОбъекта(ВнешнийОбъект, ИдентификаторКоманды, ПараметрыКоманды, АдресРезультата);

Возврат РезультатВыполнения;

КонецФункции
 
//////////////////////////////////// Код управляемой формы обработки ////////////////////////////////////////////
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
	Если ИдентификаторКоманды = "Создать Перемещение запасов" Тогда		
				
		Для каждого Элемент из ОбъектыНазначенияМассив Цикл
			КлючПоиска = Новый Структура("Ключ", Элемент);					
			Окна = ПолучитьОкна();
			Для каждого Окно из Окна Цикл				
				Рез =  Найти(Окно.Заголовок, СокрЛП(КлючПоиска.Ключ) );				
				Если Рез > 0 Тогда
					ФормаИст = ПолучитьФорму("Документ.АвансовыйОтчет.Форма.ФормаДокумента", КлючПоиска ,,,Окно); // Уже открытую форму.					
					ФормаДок = ПолучитьФорму("Документ.ПеремещениеЗапасов.Форма.ФормаДокумента");									
					ДанныеФормыИст = ФормаИст.Объект;								
					ДанныеФормыДок = ФормаДок.Объект;
					////// проверки ////////////////////
					Отказ1 = Ложь;
					ЗапасыИст     =       ДанныеФормыИст.Запасы;
					Если ЗапасыИст.Количество() = 0 Тогда
						СказатьПользователю("Табличная часть Заказы у документа-основания ПУСТА!");
						Возврат;
					КонецЕсли;
					СкладИст      =       ЗапасыИст[0].СтруктурнаяЕдиница;
					
					Если НЕ ЗначениеЗаполнено(СкладИст) Тогда
						СказатьПользователю("Склад источник пуст!");
						Отказ1 = Истина;
					КонецЕсли;
					
					// Ячейка может быть не задана и быть пустой, а вот склад нет!
					//////ЯчейкаИст     =       ЗапасыИст[0].Ячейка;
					//////
					//////Если НЕ ЗначениеЗаполнено(ЯчейкаИст) Тогда
					//////	СказатьПользователю("Ячейка источника пуста!");
					//////	Отказ1 = Истина;
					//////КонецЕсли;
					
					Если Отказ1 Тогда
						Возврат;               
					КонецЕсли;
															
					//////// Конец проверки ///////////
					ЗаполнитьФормуНаСервере(ДанныеФормыДок, ДанныеФормыИст);
					КопироватьДанныеФормы(ДанныеФормыДок, ФормаДок.Объект);
					ФормаДок.Открыть();
				КонецЕсли;	
			КонецЦикла;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры



&НаСервереБезКонтекста
Процедура ЗаполнитьФормуНаСервере(ДанныеФормыДок, ДанныеФормыИст)
	ЗапасыИст     =       ДанныеФормыИст.Запасы;
	СкладИст      =       ЗапасыИст[0].СтруктурнаяЕдиница;
	ЯчейкаИст     =       ЗапасыИст[0].Ячейка;	
	ДанныеФормыДок.Комментарий          =   "# Заполнение по основанию Авансовый отчет № "+ДанныеФормыИст.Номер+ " от "+ДанныеФормыДок.Дата;
	ДанныеФормыДок.Организация          =   ДанныеФормыИст.Организация;
	ДанныеФормыДок.СтруктурнаяЕдиница   =   СкладИст; 
	ДанныеФормыДок.СтруктурнаяЕдиницаПолучатель = ""; // Подставлялся по настройкам пользователя для организации что по умолчанию. По ТЗ пуст - сами принимаем решение.
	ДанныеФормыДок.Ячейка               =   ЯчейкаИст;
	
	//... Свойства Авансового отчета (если еще что-то надо)
	
	Запасы = ДанныеФормыДок.Запасы;
	
	Для Каждого СтрИст Из ЗапасыИст Цикл
		Стр = Запасы.Добавить();
		Стр.Номенклатура      =  СтрИст.Номенклатура;
		Стр.Характеристика    =  СтрИст.Характеристика; // Если Есть!
		Стр.Количество        =  СтрИст.Количество;
		Стр.ЕдиницаИзмерения  =  СтрИст.ЕдиницаИзмерения;
		// Есть ли Заказ покупателя. Если есть в таб. части перемещение запасов заполняется колонка РЕЗЕРВ 
		// по данным авансового отчета (если вдруг будут расхождния по количеству авансового и заказа)
		Если ЗначениеЗаполнено(СтрИст.ЗаказПокупателя) Тогда			
			Стр.Резерв = Стр.Количество;
			Стр.ЗаказПокупателя = СтрИст.ЗаказПокупателя;
		КонецЕсли;	
	КонецЦикла;		
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура СказатьПользователю(текст1)
	СП = Новый СообщениеПользователю;
	СП.Текст = текст1;
	СП.Сообщить();
КонецПроцедуры	
 

Авансовый отчет запасы Перемещение запасов заполнение перемещения запасов обработка заполнения учет ТМЦ распределение по складам логистика АРМ Управление небольшой фирмой 1.5 УНФ Внешняя обработка.

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    90983    110    40    

197

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

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

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211236    630    526    

446

AS WMS: автоматизация склада с адресным хранением с помощью ТСД

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления адресным складом. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    3625    14    0    

10

Модуль "Ответственное хранение" или фулфилмент (FBS / FBO) для 1С:УТ 11.5, КА 2.5, ERP 2.5

Логистика, склад и ТМЦ Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Модуль "Ответственное хранение" для 1С (УТ 11.5, КА 2.5, ERP 2.5) позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

60000 руб.

09.06.2020    34912    27    57    

54

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 09.04.2024, версия 9.9 - 9.10)

14400 руб.

20.11.2015    151447    367    376    

503

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки

Обмен между базами 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос в продаже с 2015г., и мы постоянно работаем над его развитием. Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    190790    270    239    

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