Имя: Пароль:
1C
 
Как ограничить программно прикрепление файлов если там уже есть хотя бы 1?
0 vondbond73
 
30.05.24
10:50
Добрый день, настроили программно формирование и прикрепление печатной формы к заказу клиента. Необходимо ограничить прикрепление этих печатных форм если уже есть сформированная.

&НаСервере
Процедура ПрикрепитьФайлНаСервере(Рез)
	Для Каждого Стр Из Рез Цикл
	  ДокументССылка = Объект.Ссылка;
	ДвоичныеДанные=ПолучитьИзВременногоХранилища(Стр.Ключ);
	АдресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
	ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
	ПараметрыФайла.Автор = ПараметрыСеанса.ТекущийПользователь.Наименование;
	ПараметрыФайла.ВладелецФайлов = ДокументСсылка;
	ПараметрыФайла.ИмяБезРасширения = "Спецификация к заказу";
	ПараметрыФайла.РасширениеБезТочки = "docx";	
	
	
	Если ЕстьПрикрепленныеФайлы(Объект.Ссылка) Тогда	
	Попытка
		РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресВХранилище);	 
	Исключение
		ОбщегоНазначения.СообщитьПользователю("Не удалось добавить файл" + ОписаниеОшибки());
	КонецПопытки;													 
		ОбщегоНазначения.СообщитьПользователю("Файл " + ПараметрыФайла.ИмяБезРасширения + " успешно добавлен");
		Возврат;
	Прервать;
	КонецЕсли;
	КонецЦикла;								   

КонецПроцедуры 

Функция ЕстьПрикрепленныеФайлы(Ссылка) Экспорт
	МассивФайлов = Объект.ПрикрепленныеФайлы.ПолучитьФайл();
	Возврат МассивФайлов.Количество()>0;
КонецФункции
1 Волшебник
 
30.05.24
10:50
(0) Не надо ограничивать
2 vondbond73
 
30.05.24
10:56
При каждом сохранении документа формируется новая печатная форма, а не желательно бы
3 vondbond73
 
30.05.24
10:57
Получается так, что плодятся файлы
4 vondbond73
 
30.05.24
10:58
(1) Может можно как-то настроить чтобы только один раз срабатывала функция?
5 Волшебник
 
30.05.24
10:58
(2) Вам надо искать существующий файл с таким же именем, например, "Спецификация к заказу" и далее спрашивать у пользователя о необходимости замены.
6 vondbond73
 
30.05.24
11:01
Тоже через РаботаСФайлами?
Нет примеров?
7 Волшебник
 
30.05.24
11:04
Через бесшовную интеграцию с 1С:Документооборот, разумеется.
8 vondbond73
 
30.05.24
11:07
С документооборотом? Документооборота нет, работаем только в УТ11.5
Или я что-то не догоняю?
9 Волшебник
 
30.05.24
11:20
(8) А почему Вы решили, что я в курсе, с чем Вы там работаете? Прикрутите 1С:Документооборот.
10 Garykom
 
30.05.24
11:31
(0) включите версии файлов и обновляйте версию ))
11 vondbond73
 
30.05.24
11:36
Необходимо чтобы когда первый раз нажали на кнопку сохранить, печатная форма сформировалась и прикрепилась, в дальнейшем нет необходимость обновлять или прикреплять новый файл, менеджеры руками будут править если есть такая необходимость
12 vondbond73
 
30.05.24
11:36
(10) Необходимо чтобы когда первый раз нажали на кнопку сохранить, печатная форма сформировалась и прикрепилась, в дальнейшем нет необходимость обновлять или прикреплять новый файл, менеджеры руками будут править если есть такая необходимость
13 Garykom
 
30.05.24
11:40
(12) ну так наймите программиста - в чем проблема?
14 vondbond73
 
30.05.24
12:03
(13) Интерес больше самому сделать
15 Мультук
 
30.05.24
12:14
(14)

1) Нужно понять, где 1С хранить информацию о присоединенном файле.

2) Нужно сформулировать условия отбора
Написать запрос

3) На основании запроса пишем функцию
ЭтаПечатнаяФормаУжеЕсть(ссылкаЗаказКлиента)

функция возвращает Булево

4) Дальше думаем в какое место из (0) эту функцию воткнуть

5) Далее отладка


P.S.
Можно почитать модуль РаботаСФайлами
Можно даже весь
Можно начать с РаботаСФайлами.ДобавитьФайл(..)
16 Garykom
 
30.05.24
12:14
(15) у него уже есть функция
ЕстьПрикрепленныеФайлы(Ссылка)
допилить чтобы была еще функция
ЕстьПрикрепленныйФайл(Ссылка, ИмяФайла)
и все
17 Garykom
 
30.05.24
12:15
(16)+ банальное условие на
ПараметрыФайла.ИмяБезРасширения
18 vondbond73
 
31.05.24
15:04
(17) Можете чуть подробнее рассказать про условие?
19 Ногаминебить
 
31.05.24
15:15
(0) А вот этот код рабочий? Он же насколько я понимаю наоборот добавит файл только если уже есть прикрепленный?
20 Волшебник
 
31.05.24
15:16
(19) Ну что Вы придираетесь? Там всего лишь пропущено "НЕ"
21 Ногаминебить
 
31.05.24
15:18
И тогда вроде как решение уже написано. :)
22 Волшебник
 
31.05.24
15:19
(21) Дело в том, что этого делать вообще не нужно. А если уж искать файл, то учитывать его тип (имя)
23 Волшебник
 
31.05.24
15:20
"Программист 1С может запрограммировать всё, что угодно. Только зачем?" © Гена
24 vondbond73
 
31.05.24
15:27
(19) Код выдает ошибку что не может найти в объекте прикрепленные файлы. Попробовав найти где хранятся прикрепленные файлы, наткнулся на обработку "РаботаСФайлами"
25 Волшебник
 
31.05.24
15:32
(24) Исправьте ошибку
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.