УНФ 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 2 500 руб. Купить
Заполнение запасов 1.0.2
.epf 8,61Kb ver:1.0.2
5 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Вначале рассмотрим исходные данные задачи. На рисунках 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С:Предприятие 8 Россия Платные (руб)

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

50000 руб.

26.07.2023    11049    61    0    

11

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

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

89900 руб.

09.06.2020    56058    43    60    

78

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

Полнофункциональное расширение для формирования и ведения учета перевозочных документов всех видов (ТН, ТТН, ЭТрН). Печать документов или отправка через ЭПД (Электронный перевозочный документооборот). Поддержка регистрации нескольких перевозок на одну финансовую реализацию (в виде УПД, например), а также одной перевозки на основании нескольких финансовых реализаций. Формирование всех сопроводительных документов из одной отгрузки. Формирование реестра грузосопроводительных документов, доверенности менеджеров для указания ответственных лиц (руководитель, главный бухгалтер, кладовщик) организации для пользователей ИБ. Гибкая настройка функциональности под потребности организации.

3399 руб.

18.04.2017    54266    293    43    

99

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

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

12444 руб.

29.10.2014    231910    747    532    

495

Обмен с ГосИС Логистика, склад и ТМЦ Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Внешняя обработка для инвентаризации кодов маркировки в системе "Честный знак". Позволяет быстро определить и списать коды маркировки проданного, испорченного, утраченного (полный перечень причин списания указан ниже)  товара, которые всё ещё числятся за организацией. Привести в соответствие остатки маркированного товара программы 1С и системы "Честного знака".

6649 руб.

09.01.2024    16290    165    30    

156
Для отправки сообщения требуется регистрация/авторизация