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

18.04.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Заполнение запасов - Доб. заказ покупателя и резерв по нему если есть. 1.1.0
.epf 8,79Kb ver:1.1.0
6
6 Скачать (1 SM) Купить за 1 850 руб.
Заполнение запасов 1.0.2
.epf 8,61Kb ver:1.0.2
5
5 Скачать (1 SM) Купить за 1 850 руб.

Вначале рассмотрим исходные данные задачи. На рисунках 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С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    38668    28    59    

64

SALE! 10%

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

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

55778 50200 руб.

24.04.2015    194950    150    243    

280

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

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

40000 руб.

26.07.2023    6064    21    0    

12

Загрузка и выгрузка в 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 1С:Розница 3.0 Платные (руб)

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

15600 руб.

20.11.2015    156052    378    378    

513

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

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

35000 руб.

24.03.2015    125647    300    114    

136

SALE! 15%

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

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

11100 9435 руб.

29.10.2014    216743    657    527    

456

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 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    96356    125    40    

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