Добавляем папки для поступлений. Розница 2.3

В Рознице 2.3 нет папок для поступлений. А клиенту хочется хранить сканы поступлений и УПД в XML в присоединенных файлах.

В Рознице 3.0 такое появилось, но клиенту нужно сейчас, а на Розницу 3.0 он еще не переходит.

Для каждого документа будем создавать свою папку файлов. GUID папки будет равен GUID документа.

Будем добавлять кнопку в форму документа:


&НаСервере
Процедура фдд_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	ИмяКоманды = "фдд_ПрисоединенныеФайлы";
	КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
	КомандаФормы.Действие = ИмяКоманды;
	КомандаФормы.Заголовок = "Файлы";
	КомандаФормы.ИзменяетСохраняемыеДанные = Ложь;
	КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
	КомандаФормы.Картинка = БиблиотекаКартинок.Прикрепить;
	
	Привязка = Элементы.ГруппаКомандыФормы;
	НовыйЭлемент = ЭтаФорма.Элементы.Вставить(ИмяКоманды, Тип("КнопкаФормы"), Привязка.Родитель, Привязка);
	НовыйЭлемент.ИмяКоманды = ИмяКоманды;
	
КонецПроцедуры

&НаКлиенте
Процедура фдд_ПрисоединенныеФайлы(Команда)
	Если Объект.Ссылка.Пустая() Тогда
		ПоказатьПредупреждение(, "Сначала запишите документ!");
		Возврат;
	КонецЕсли;                                              
	
	фдд_Клиент.ОткрытьПрисоединенныеФайлы(Объект.Ссылка);
КонецПроцедуры

И в форму списка:


&НаСервере
Процедура фдд_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	ИмяКоманды = "фдд_ПрисоединенныеФайлы";
	КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
	КомандаФормы.Действие = ИмяКоманды;
	КомандаФормы.Заголовок = "Файлы";
	КомандаФормы.ИзменяетСохраняемыеДанные = Ложь;
	КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
	КомандаФормы.Картинка = БиблиотекаКартинок.Прикрепить;
	
	Привязка = Элементы.ОбщиеКоманды;
	НовыйЭлемент = ЭтаФорма.Элементы.Вставить(ИмяКоманды, Тип("КнопкаФормы"), Привязка.Родитель, Привязка);
	НовыйЭлемент.ИмяКоманды = ИмяКоманды;    
КонецПроцедуры
	
&НаКлиенте
Процедура фдд_ПрисоединенныеФайлы(Команда)
	фдд_Клиент.ОткрытьПрисоединенныеФайлы(Элементы.Список.ТекущиеДанные.Ссылка);
КонецПроцедуры


Модуль клиента фдд_Клиент:

Функция ОткрытьПрисоединенныеФайлы(ДокументСсылка) Экспорт
	
	ПапкаДокумента = фдд_Сервер.ДатьПапкуДокумента(ДокументСсылка);    
	
	ПараметрыОткрытия = Новый Структура("Папка", ПапкаДокумента);
	
	ОткрытьФорму("Справочник.Файлы.Форма.Файлы", ПараметрыОткрытия, , Новый УникальныйИдентификатор());
	
КонецФункции

Модуль сервера фдд_Сервер:

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

КонецФункции

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

Результат выглядит так:

Среда: Розница 2.3.13.30. Объем: 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *