Добавляем папки для поступлений. Розница 2.3
В Рознице 2.3 нет папок для поступлений. А клиенту хочется хранить сканы поступлений и УПД в XML в присоединенных файлах.
В Рознице 3.0 такое появилось, но клиенту нужно сейчас, а на Розницу 3.0 он еще не переходит.
Для каждого документа будем создавать свою папку файлов. GUID папки будет равен GUID документа.
Будем добавлять кнопку в форму документа:
&НаСервере Процедура фдд_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ИмяКоманды = "фдд_ПрисоединенныеФайлы"; КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды); КомандаФормы.Действие = ИмяКоманды; КомандаФормы.Заголовок = "Файлы"; КомандаФормы.ИзменяетСохраняемыеДанные = Ложь; КомандаФормы.Отображение = ОтображениеКнопки.Картинка; КомандаФормы.Картинка = БиблиотекаКартинок.Прикрепить; Привязка = Элементы.ГруппаКомандыФормы; НовыйЭлемент = ЭтаФорма.Элементы.Вставить(ИмяКоманды, Тип("КнопкаФормы"), Привязка.Родитель, Привязка); НовыйЭлемент.ИмяКоманды = ИмяКоманды; КонецПроцедуры &НаКлиенте Процедура фдд_ПрисоединенныеФайлы(Команда) Если Объект.Ссылка.Пустая() Тогда ПоказатьПредупреждение(, "Сначала запишите документ!"); Возврат; КонецЕсли; фдд_Клиент.ОткрытьПрисоединенныеФайлы(Объект.Ссылка); КонецПроцедуры
И в форму списка:
&НаСервере Процедура фдд_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ИмяКоманды = "фдд_ПрисоединенныеФайлы"; КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды); КомандаФормы.Действие = ИмяКоманды; КомандаФормы.Заголовок = "Файлы"; КомандаФормы.ИзменяетСохраняемыеДанные = Ложь; КомандаФормы.Отображение = ОтображениеКнопки.Картинка; КомандаФормы.Картинка = БиблиотекаКартинок.Прикрепить; Привязка = Элементы.ОбщиеКоманды; НовыйЭлемент = ЭтаФорма.Элементы.Вставить(ИмяКоманды, Тип("КнопкаФормы"), Привязка.Родитель, Привязка); НовыйЭлемент.ИмяКоманды = ИмяКоманды; КонецПроцедуры &НаКлиенте Процедура фдд_ПрисоединенныеФайлы(Команда) фдд_Клиент.ОткрытьПрисоединенныеФайлы(Элементы.Список.ТекущиеДанные.Ссылка); КонецПроцедуры
Модуль клиента фдд_Клиент:
Функция ОткрытьПрисоединенныеФайлы(ДокументСсылка) Экспорт ПапкаДокумента = фдд_Сервер.ДатьПапкуДокумента(ДокументСсылка); ПараметрыОткрытия = Новый Структура("Папка", ПапкаДокумента); ОткрытьФорму("Справочник.Файлы.Форма.Файлы", ПараметрыОткрытия, , Новый УникальныйИдентификатор()); КонецФункции
Модуль сервера фдд_Сервер:
Функция ДатьПапкуДокумента(ДокументСсылка) Экспорт Если Не ЗначениеЗаполнено(ДокументСсылка) Тогда Возврат Неопределено; КонецЕсли; ПапкаДокумента = Справочники.ПапкиФайлов.ПолучитьСсылку(ДокументСсылка.УникальныйИдентификатор()); ПапкаДокументаОбъект = ПапкаДокумента.ПолучитьОбъект(); Если ПапкаДокументаОбъект <> Неопределено Тогда Возврат ПапкаДокумента; КонецЕсли; ПапкаДокументаОбъект = Справочники.ПапкиФайлов.СоздатьЭлемент(); ПапкаДокументаОбъект.УстановитьСсылкуНового(ПапкаДокумента); ПапкаДокументаОбъект.Родитель = ДатьПапкуДокументов(); ПапкаДокументаОбъект.Наименование = Строка(ДокументСсылка); ПапкаДокументаОбъект.Записать(); Возврат ПапкаДокументаОбъект.Ссылка; КонецФункции Функция ДатьПапкуДокументов() Экспорт НаименованиеПапкиДокументов = "Поступления товаров"; ПапкаДокументов = Справочники.ПапкиФайлов.НайтиПоНаименованию(НаименованиеПапкиДокументов, истина); Если НЕ ЗначениеЗаполнено(ПапкаДокументов) Тогда ОО = Справочники.ПапкиФайлов.СоздатьЭлемент(); ОО.Наименование = НаименованиеПапкиДокументов; ОО.Записать(); ПапкаДокументов = ОО.Ссылка; КонецЕсли; Возврат ПапкаДокументов; КонецФункции
Результат выглядит так:
Среда: Розница 2.3.13.30. Объем: 1 час.
Свежие комментарии