This commit is contained in:
wakadakawaka 2025-07-21 21:45:52 +05:00
parent 9b736f0c9a
commit d0c69a8cea
49 changed files with 908 additions and 216 deletions

Binary file not shown.

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Варианты отчетов
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-варианты-отчетов
slug: общие-бсп-стандартные-подсистемы-варианты-отчетов/подключение-к-подсистеме-варианты-отчетов
---
# Порядок действий
## Хранилище вариантов

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Версионирование
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-версионирование
slug: общие-бсп-стандартные-подсистемы-версионирование/подключение-к-подсистеме-версионирование
---
## Настройка объектов метаданных

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Взаимодействия
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-взаимодействия
slug: общие-бсп-стандартные-подсистемы-взаимодействия/подключение-к-подсистеме-взаимодействия
---
# Настройка объекта
Создаем новый документ/справочник. В документе должны быть реквизит `Ответственный` (СправочникСсылка.Пользователи) и табличная часть `ПартнерыИКонтактныеЛица`.

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Дата запрета изменений
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-дата-запрета-изменений
slug: общие-бсп-стандартные-подсистемы-даты-запрета-изменения/подключение-к-подсистеме-дата-запрета-изменений
---
# Общие модули
В процедуре `ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения` общего модуля `ДатыЗапретаИзмененияПереопределяемый` дополнить:

View File

@ -1,6 +1,6 @@
---
title: Отключить проверку
slug: общие-даты-запрета-изменения/отключить-проверку
slug: общие-бсп-стандартные-подсистемы-даты-запрета-изменения-программный-интерфейст/отключить-проверку
---
```bsl
// В текущем сеансе отключает и включает проверку дат запрета изменения и загрузки данных.

View File

@ -1,6 +1,6 @@
---
title: Проверить на запрет
slug: общие-даты-запрета-изменения/проверить-на-запрет
slug: общие-бсп-стандартные-подсистемы-даты-запрета-изменения-программный-интерфейст/проверить-на-запрет
---
```bsl
// Проверяет, запрещено ли изменение данных при интерактивном редактировании пользователем

View File

@ -1,6 +1,6 @@
---
title: Длительная многопоточная операция
slug: общие-длительные-операции/длительная-многопоточная-операция
slug: общие-бсп-стандартные-подсистемы-длительные-операции/длительная-многопоточная-операция
---
# Определение длительной операции
Многопоточные операции применяются в случаях обработки большого массива данных — например, для изменения реквизитов номенклатуры, обработки больших табличных документов, массового добавления объектов и пр.

View File

@ -1,6 +1,6 @@
---
title: Длительная однопоточная операция
slug: общие-длительные-операции/длительная-однопоточная-операция
slug: общие-бсп-стандартные-подсистемы-длительные-операции/длительная-однопоточная-операция
---
# Схема выполнения длительной серверной операции
Механизм длительных операций БСП необходим для выполнения тяжелых операций без блокирования окна клиентского приложения. По умолчанию платформа блокирует клиентский интерфейс до тех пор, пока серверная операция не будет завершена. Подсистема "Длительные операции" позволяет обойти эту проблему

View File

@ -1,6 +1,6 @@
---
title: Внешняя печатная форма (С ручным созданием элементов формы)
slug: общие-дополнительные-отчеты-и-обработки-настройки/внешняя-печатная-форма-с-ручным-созданием-элементов-формы
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки-настройки/внешняя-печатная-форма-с-ручным-созданием-элементов-формы
---
# Настройка обработки

View File

@ -1,6 +1,6 @@
---
title: Внешняя печатная форма (Только программно)
slug: общие-дополнительные-отчеты-и-обработки-настройки/внешняя-печатная-форма-только-программно
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки-настройки/внешняя-печатная-форма-только-программно
---
# Настройка обработки

View File

@ -1,6 +1,6 @@
---
title: Дополнительная обработка
slug: общие-дополнительные-отчеты-и-обработки-настройки/дополнительная-обработка
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки-настройки/дополнительная-обработка
---
# Модуль объекта обработки
```bsl

View File

@ -1,6 +1,6 @@
---
title: Дополнительный отчет
slug: общие-дополнительные-отчеты-и-обработки-настройки/дополнительный-отчет
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки-настройки/дополнительный-отчет
---
# Модуль объекта обработки
```bsl

View File

@ -1,6 +1,6 @@
---
title: Регламентная обработка
slug: общие-дополнительные-отчеты-и-обработки-настройки/регламентная-обработка
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки-настройки/регламентная-обработка
---
# Модуль объекта обработки
```bsl

View File

@ -1,6 +1,6 @@
---
title: Механизм доп.отчетов и обработок
slug: общие-подключение-объектов-к-бсп/механизм-доп-отчетов-и-обработок
title: Подключение нетиповых подсистем к механизму доп.отчетов и обработок
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки/подключение-нетиповых-подсистем-к-механизму-доп-отчетов-и-обработок
---
# Постановка задачи

View File

@ -1,6 +1,6 @@
---
title: Подробно о механизме
slug: общие-дополнительные-отчеты-и-обработки/подробно-о-механизме
slug: общие-бсп-стандартные-подсистемы-дополнительные-отчеты-и-обработки/подробно-о-механизме
---
[Читаем и просвещаемся](https://infostart.ru/1c/articles/558559/)

View File

@ -1,3 +1,7 @@
---
title: Подключение к подсистеме Запрет редактирования реквизитов
slug: общие-бсп-стандартные-подсистемы-запрет-редактирования-реквизитов/подключение-к-подсистеме-запрет-редактирования-реквизитов
---
# Настройка общего модуля
В общем модуле `ЗапретРедактированияРеквизитовОбъектовПереопределяемый` дополняем процедуру `ПриОпределенииОбъектовСЗаблокированнымиРеквизитами` своими объектами

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Контактная информация
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-контактная-информация
slug: общие-бсп-стандартные-подсистемы-контактная-информация/подключение-к-подсистеме-контактная-информация
---
> [Подсистема БСП «Контактная информация» (ИТС)](https://its.1c.ru/db/pubcloud1c#content:80:hdoc:p513)

View File

@ -1,6 +1,6 @@
---
title: Отправка сообщений в чат (обсуждения)
slug: общие-обсуждения/отправка-сообщений-в-чат-обсуждения
slug: общие-бсп-стандартные-подсистемы-обсуждения/отправка-сообщений-в-чат-обсуждения
---
```bsl
&НаСервереБезКонтекста

View File

@ -1,6 +1,6 @@
---
title: Добавление команд отчетов
slug: общие-подключение-объектов-к-бсп/добавление-команд-отчетов
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды-команды-отчетов/добавление-команд-отчетов
---
# В общем модуле `ВариантыОтчетовПереопределяемый` добавляем свой объект

View File

@ -1,6 +1,6 @@
---
title: Добавление команд печати
slug: общие-подключение-объектов-к-бсп/добавление-команд-печати
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды-команды-печати/добавление-команд-печати
---
# В общем модуле `УправлениеПечатьюПереопределяемый`

View File

@ -1,6 +1,6 @@
---
title: Добавление команд создания на основании
slug: общие-подключение-объектов-к-бсп/добавление-команд-создания-на-основании
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды-команды-создания-на-основании/добавление-команд-создания-на-основании
---
# В общем модуле `CозданиеНаОснованииПереопределяемый`

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Подключаемые команды
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-подключаемые-команды
slug: общие-бсп-стандартные-подсистемы-подключаемые-команды/подключение-к-подсистеме-подключаемые-команды
---
## Форма объекта
```bsl

View File

@ -1,184 +0,0 @@
---
title: Подключение к подсистеме Присоединенные файлы
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-присоединенные-файлы
---
## Настройка определяемых типов
Включить собственный объект в определяемые типы:
- **`ВладелецПрисоединенныхФайлов`**
- **`ВладелецПрисоединенныхФайловОбъект`** (только для справочников)
- **`ВладелецПрисоединенныхФайловБЗК`** (в ЗУП)
## Создание справочника для хранения информации о файлах
- Скопировать любой стандартный справочник БСП, имя которого заканчивается на **`ПрисоединенныеФайлы`**. Например: **`АнкетаПокупателяПрисоединенныеФайлы`**.
- Скопированный справочник переименовать, следуя шаблону: **`<МойСправочник>ПрисоединенныеФайлы`**. Например: **`СН_АвтотранспортПрисоединенныеФайлы`**
- В скопированном справочнике **`<МойСправочник>ПрисоединенныеФайлы`** необходимо откорректировать тип реквизита **`ВладелецФайла`**. Как тип необходимо указать тот объект, который подключается к подсистеме. Например **`СН_АвтотранспортСсылка`**
- Справочник **`<МойСправочник>ПрисоединенныеФайлы`** нужно включить в определяемые типы **`ПрисоединенныйФайл`** и **`ПрисоединенныйФайлОбъект`**.
## Настройка формы объекта
Создать форму элемента (при отсутствии). В модуле формы необходимо добавить следующий код:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайлами.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// ПРИ ИСПОЛЬЗОВАНИИ ГИПЕРССЫЛКИ ИЗ ПОДСИСТЕМЫ "РАБОТА С ФАЙЛАМИ"
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
```
## Настройка формы списка
### Подключение к программному интерфейсу
Создать форму списка (при отсутствии). В модуле формы необходимо добавить следующий код:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаКлиенте
Процедура <ИмяСписка>ПриАктивизацииСтроки(Элемент)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
```
### Вывод изображения скрепки в список
- Определить запрос для списка как `Произвольный`
> Информация о наличии файлов в БСП хранится в регистре сведений `НаличиеФайлов`, соответственно для получения информации необходимо присоединить этот регистр к основной таблице. Регистр сведений “Наличие файлов” содержит единственное измерение с типом `ОпределяемыйТип.ВладелецПрисоединенныхФайлов`, по которому и будет осуществляться соединение.
- В настройках списка на вкладке “Запрос” добавьте еще одно поле “ЕстьФайлы”, полученное в результате левого соединения с регистром “Наличие файлов”. В простейшем варианте запрос будет выглядеть так:
```bsl
ВЫБРАТЬ
ДокументЗаявкаНаРазработку.Ссылка КАК Ссылка,
//Произвольные поля,
ВЫБОР
КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
ТОГДА 0
КОГДА НаличиеФайлов.ЕстьФайлы
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ЕстьФайлы
ИЗ
Документ.ЗаявкаНаРазработку КАК ДокументЗаявкаНаРазработку
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
ПО ДокументЗаявкаНаРазработку.Ссылка = НаличиеФайлов.ОбъектСФайлами
```
- После сохранения произвольного запроса необходимо вывести новое поле `ЕстьФайлы` в таблицу формы. В свойствах этого реквизита устанавливаем свойство `Вид` в значение `Поле картинки`, свойство `ПоложениеЗаголовка` в значение `Нет`, а в свойстве `КартинкаЗначений` выбираем стандартную БСПшную картинку `КоллекцияСкрепка`, которая находится во вкладке `Из конфигурации`

View File

@ -1,6 +1,6 @@
---
title: Подключение к подсистеме Свойства
slug: общие-подключение-объектов-к-бсп/подключение-к-подсистеме-свойства
slug: общие-бсп-стандартные-подсистемы-свойства/подключение-к-подсистеме-свойства
---
# Дополнительные реквизиты, сведения, метки

View File

@ -0,0 +1,186 @@
---
title: Подключение к подсистеме Присоединенные файлы
slug: общие-бсп-стандартные-подсистемы-файлы/подключение-к-подсистеме-присоединенные-файлы
---
[Полезные файлы](/bsp-rabota-s-failami/rabota-s-failami.zip)
# Настройка определяемых типов
Включить собственный объект в определяемые типы:
- **`ВладелецПрисоединенныхФайлов`**
- **`ВладелецПрисоединенныхФайловОбъект`** (только для справочников)
- **`ВладелецПрисоединенныхФайловБЗК`** (в ЗУП)
Если владелец файла - это **документ**. то необходимо его включить в состав типов свойства **`Источник`** подписки на собыите **`УстановитьПометкуУдаленияПрисоединенныхФайловДокументов`**. Если подписки нет - создаем свою:
|Свойство|Значение|
|-|-|
|Источник|**<ПодключаемыйОбъектМетаданных>** |
|Событие|**ПередЗаписью**|
|Обработчик|**РаботаСФайлами.УстановитьПометкуУдаленияПрисоединенныхФайловДокументов**|
# Создание справочника для хранения информации о файлах
- Скопировать любой стандартный справочник БСП, имя которого заканчивается на **`ПрисоединенныеФайлы`** (например, **`ПользователиПрисоединенныеФайлы`**).
- Скопированный справочник по шаблону: **`<ПодключаемыйОбъектМетаданных>ПрисоединенныеФайлы`**. Например: **`ПодключаемыйОбъектМетаданныхПрисоединенныеФайлы`**
- В скопированном справочнике **`<ПодключаемыйОбъектМетаданных>ПрисоединенныеФайлы`** необходимо откорректировать тип реквизита **`ВладелецФайла`**. Как тип необходимо указать тот объект, который подключается к подсистеме. Например **`СправочникСсылка.ПодключаемыйОбъектМетаданных`**
- Справочник **`<ПодключаемыйОбъектМетаданных>ПрисоединенныеФайлы`** нужно включить в определяемые типы
- **`ПрисоединенныйФайл`**
- **`ПрисоединенныйФайлОбъект`**.
- Включить в состав плана обена **`ОбновлениеИнформационнойБазы`**
- В подписке на событие **`ОпределитьФормуПрисоединенногоФайла`** включить в состав типов свойства `Источник`. Если подписки на событие нет, то создаем новую:
|Свойство|Значение|
|-|-|
|Источник|**<ПодключаемыйОбъектМетаданных>ПрисоединенныеФайлы** |
|Событие|**ОбработкаПолученияФормы**|
|Обработчик|**РаботаСФайламиКлиентСервер.ОпределитьФормуПрисоединенногоФайла**|
# Настройка формы объекта
Создать форму элемента (при отсутствии). В модуле формы необходимо добавить следующий код:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.РаботаСФайлами
// Для отображения гиперссылки
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
ДобавляемыеЭлементы.Добавить(ПараметрыГиперссылки);
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ДобавляемыеЭлементы);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
```
# Настройка формы списка
- Определить запрос для списка как `Произвольный`
- В настройках списка на вкладке `Запрос` добавляем еще одно поле `ЕстьФайлы`, полученное в результате левого соединения с регистром `Наличие файлов`. В простейшем варианте запрос будет выглядеть так:
```bsl
ВЫБРАТЬ
ДокументЗаявкаНаРазработку.Ссылка КАК Ссылка,
//Произвольные поля,
ВЫБОР
КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
ТОГДА 0
КОГДА НаличиеФайлов.ЕстьФайлы
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ЕстьФайлы
ИЗ
Документ.ЗаявкаНаРазработку КАК ДокументЗаявкаНаРазработку
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
ПО ДокументЗаявкаНаРазработку.Ссылка = НаличиеФайлов.ОбъектСФайлами
```
- После сохранения произвольного запроса необходимо вывести новое поле `ЕстьФайлы` в таблицу формы. В свойствах этого реквизита устанавливаем свойство `Вид` в значение `Поле картинки`, свойство `ПоложениеЗаголовка` в значение `Нет`, а в свойстве `КартинкаЗначений` выбираем стандартную БСПшную картинку `КоллекцияСкрепка`, которая находится во вкладке `Из конфигурации`
## ДОПОЛНИТЕЛЬНО. Вывод поля картинки на форму объекта
Чтобы на форме объекта отображать картинку (например, изображение товара), нужно:
- Создать реквизит объекта, который будет хранить ссылку на элемент справочника - хранилища файлов (**`<ПодключаемыйОбъектМетаданных>ПрисоединенныеФайлы`**)
- В форме объекта:
- Создаем группу, где будет располагаться поле картинки.
- В модуле формы дополнительно прописываем:
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.РаботаСФайлами
...
ПараметрыПоля = РаботаСФайлами.ПолеФайла();
ПараметрыПоля.ПоказыватьКоманднуюПанель = Ложь;
ПараметрыПоля.ПутьКДанным = "Объект.ФайлКартинки";
ПараметрыПоля.ПутьКДаннымИзображения = "ИзображениеНаФорме";
ПараметрыПоля.Размещение = "ГруппаИзображениеТовара"; // Имя созданной группы
...
ДобавляемыеЭлементы.Добавить(ПараметрыПоля);
...
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ДобавляемыеЭлементы);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
```
### Исправление ошибки БСП при работе с полями картинки
В общем модуле **`РаботаСФайламиКлиент`** в процедуре **`ОбновитьОбластьПредпросмотра`** нужно исправить:
```bsl
&ИзменениеИКонтроль("ОбновитьОбластьПредпросмотра")
Процедура IS_ОбновитьОбластьПредпросмотра(Форма, НомерЭлемента, Файл)
Если ТипЗнч(НомерЭлемента) = Тип("Строка") Тогда
НомерЭлементаЧислом = Число(НомерЭлемента);
НомерЭлементаСтрокой = НомерЭлемента;
Иначе
НомерЭлементаЧислом = НомерЭлемента;
#Удаление
НомерЭлементаСтрокой = Формат(НомерЭлемента, "ЧГ=;");
#КонецУдаления
#Вставка
НомерЭлементаСтрокой = Формат(НомерЭлемента, "ЧН=0; ЧГ=");
#КонецВставки
КонецЕсли;
...
КонецПроцедуры
```

View File

@ -0,0 +1,54 @@
---
title: Добавить со сканера
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/добавить-со-сканера
---
# Описание
# Пример применения
```bsl
&НаКлиенте
Процедура ДобавитьСоСканера(Команда)
Если НЕ РаботаСФайламиКлиент.ДоступноСканирование() Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("Сканирование на данном компьютере недоступно...");
Возврат;
КонецЕсли;
ОповещениеРезультата = Новый ОписаниеОповещения("ДобавитьСоСканераЗавершение", ЭтотОбъект);
РаботаСФайламиКлиент.ДоступнаКомандаСканировать(ОповещениеРезультата);
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьСоСканераЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если НЕ Результат Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("Команда сканирования недоступна...");
Возврат;
КонецЕсли;
ПараметрыДобавления = РаботаСФайламиКлиент.ПараметрыДобавленияСоСканера();
ПараметрыДобавления.ВладелецФайла = Объект.Номенклатура;
ПараметрыДобавления.ФормаВладелец = ЭтотОбъект;
ПараметрыДобавления.ТолькоОдинФайл = Истина;
ПараметрыДобавления.ОбработчикРезультата = Новый ОписаниеОповещения("ПослеСканированияДокумента", ЭтотОбъект);
ПараметрыСканирования = РаботаСФайламиКлиент.ПараметрыСканирования(Истина);
РаботаСФайламиКлиент.ДобавитьСоСканера(ПараметрыДобавления);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСканированияДокумента(Результат, ДополнительныеПараметры) Экспорт
// Обработка результата
КонецПроцедуры
```

View File

@ -0,0 +1,78 @@
---
title: Добавить файл
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/добавить-файл
---
# Описание
```bsl
// Открывает диалог выбора файлов для помещения в программу одного выбранного файла.
// Синтаксис
//
// Процедура ДобавитьФайл(ОбработчикРезультата, ВладелецФайла, ФормаВладелец, РежимСоздания = Неопределено,
// ПараметрыДобавления = Неопределено) Экспорт
// Параметры
//
// ОбработчикРезультата - ОписаниеОповещения - содержит описание процедуры, вызов которой будет произведен
// после добавления файла со следующими параметрами:
// * Результат - Структура:
// ** ФайлСсылка - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом,
// если он был добавлен, иначе Неопределено.
// ** ФайлДобавлен - Булево - Истина, если файл добавлен.
// ** ТекстОшибки - Строка - текст ошибки, если файл не был добавлен.
// * ДополнительныеПараметры - Произвольный - значение, указанное при создании объекта оповещения.
// ВладелецФайла - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому
// требуется прикрепить добавляемый файл.
// ФормаВладелец - ФормаКлиентскогоПриложения - форма, из которой вызвано создание файла.
// РежимСоздания - Неопределено
// - Число - режим создания файла:
// - Неопределено - показать диалог выбора режима создания файла.
// - Число - создать файл указанным способом:
// 1 - из шаблона (копированием другого файла);
// 2 - с компьютера (из файловой системы);
// 3 - со сканера.
// ПараметрыДобавления - Структура - дополнительные параметры добавления файлов:
// * МаксимальныйРазмер - Число - ограничение на размер файла (в мегабайтах), загружаемого из файловой системы.
// Если принимает значение 0, проверка размера не проводится. Свойство игнорируется,
// если принимает значение больше, чем указано в константе МаксимальныйРазмерФайла.
// * ФильтрДиалогаВыбора - Строка - фильтр, устанавливаемый в диалог выбора при добавлении файла.
// Формат см. в свойстве Фильтр объекта ДиалогВыбораФайла в синтакс-помощнике.
// * НеОткрыватьКарточку - Булево - действие после создания. Если принимает значение Истина, карточка файла
// не будет открыта после создания, иначе - карточку файла будет открыта.
РаботаСФайламиКлиент.ДобавитьФайл(Оповещение, Ссылка, ЭтотОбъект, РежимСоздания);
```
# Пример применения
```bsl
&НаКлиенте
Процедура ДобавитьФайл(Команда)
// Режимы создания:
// 1 - из шаблона (копированием другого файла)
// 2 - с компьютера (из файловой системы)
// 3 - со сканера
РежимСоздания = 2;
Оповещение = Новый ОписаниеОповещения("ДобавитьФайлЗавершение", ЭтотОбъект);
РаботаСФайламиКлиент.ДобавитьФайл(Оповещение, Объект.Номенклатура, ЭтотОбъект, РежимСоздания);
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьФайлЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если НЕ Результат.ФайлДобавлен Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(Результат.ТекстОшибки);
Возврат;
КонецЕсли;
ОбщегоНазначенияКлиент.СообщитьПользователю("Файл добавлен: " + Результат.ФайлСсылка);
КонецПроцедуры // ДобавитьФайлЗавершение()
```

View File

@ -0,0 +1,61 @@
---
title: Добавить файлы
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/добавить-файлы
---
# Описание
```bsl
// Открывает диалог выбора файлов для помещения в программу одного или нескольких файлов.
// При этом проверяются необходимые условия:
// - размер файла не превышает максимально допустимого,
// - файл имеет допустимое расширение,
// - имеется свободное место в томе (при хранении файлов в томах),
// - прочие условия.
// Синтаксис
//
// Процедура ДобавитьФайлы(Знач ВладелецФайла, Знач ИдентификаторФормы, Знач Фильтр = "", ГруппаФайлов = Неопределено,
// ОбработчикРезультата = Неопределено) Экспорт
// Параметры
//
// ВладелецФайла - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому
// требуется прикрепить добавляемый файл.
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище
// которой будет помещен файл.
// Фильтр - Строка - фильтр выбираемого файла, например, картинки для номенклатуры.
// ГруппаФайлов - ОпределяемыйТип.ПрисоединенныйФайл - группа справочника с файлами, в которую будет
// добавлен новый файл.
// ОбработчикРезультата - ОписаниеОповещения - описание процедуры, вызов которой будет произведен
// после добавления файлов со следующими параметрами:
// Результат - Массив - ссылки на добавленные файлы. Если файлы не были добавлены, пустой массив.
// ДополнительныеПараметры - Произвольный - значение, указанное при создании описания оповещения.
РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Номенклатура, ЭтотОбъект.УникальныйИдентификатор,,,Оповещение);
```
# Пример применения
```bsl
&НаКлиенте
Процедура ДобавитьФайлы(Команда)
Оповещение = Новый ОписаниеОповещения("ДобавитьФайлыЗавершение", ЭтотОбъект);
РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Номенклатура, ЭтотОбъект.УникальныйИдентификатор,,,Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьФайлыЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Количество() = 0 Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("Не удалось добавить файлы...");
Возврат;
КонецЕсли;
ОбщегоНазначенияКлиент.СообщитьПользователю(СтрШаблон("Добавлено %1 файлов", Результат.Количество()));
КонецПроцедуры // ДобавитьФайлЗавершение()
```

View File

@ -0,0 +1,39 @@
---
title: Напечатать файлы
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/напечатать-файлы
---
# Описание
```bsl
// Выполняет печать файлов на принтер.
// Синтаксис
//
// Процедура НапечататьФайлы(Знач Файлы, ИдентификаторФормы = Неопределено) Экспорт
// Параметры
//
// Файлы - ОпределяемыйТип.ПрисоединенныйФайл
// - Массив из ОпределяемыйТип.ПрисоединенныйФайл
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище
// которой будет помещен файл.
РаботаСФайламиКлиент.НапечататьФайлы(МассивФайлов, УникальныйИдентификатор);
```
# Пример применения
```bsl
&НаКлиенте
Процедура НапечататьФайлы(Команда)
ФайлСсылка = ФайлКартинкиНоменклатуры(Объект.Номенклатура);
Если ФайлСсылка.Пустая() Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("У номенклатуры не выбран файл картинки!");
Возврат;
КонецЕсли;
МассивФайлов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ФайлСсылка);
РаботаСФайламиКлиент.НапечататьФайлы(МассивФайлов, ЭтотОбъект.УникальныйИдентификатор);
КонецПроцедуры
```

View File

@ -0,0 +1,40 @@
---
title: Открыть файл
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/открыть-файл
---
# Описание
```bsl
// Открывает файл для просмотра или редактирования.
// Если файл открывается для просмотра, тогда получает файл в рабочий каталог пользователя,
// при этом ищет файл в рабочем каталоге и предлагает открыть существующий или получить файл с сервера.
// Если файл открывается для редактирования, тогда открывает файл в рабочем каталоге (если есть) или
// получает его с сервера.
// Синтаксис
//
// Процедура ОткрытьФайл(Знач ДанныеФайла, Знач ДляРедактирования = Ложь) Экспорт
// Параметры
//
// ДанныеФайла - см. РаботаСФайлами.ДанныеФайла.
// ДляРедактирования - Булево - Истина, если файл открывается для редактирования, иначе Ложь.
РаботаСФайламиКлиент.ОткрытьФайл(СтруктураДанных);
```
# Пример применения
```bsl
&НаКлиенте
Процедура ОткрытьПрисоединенныйФайл(Команда)
ФайлСсылка = ФайлКартинкиНоменклатуры(Объект.Номенклатура);
Если ФайлСсылка.Пустая() Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("У номенклатуры не выбран файл картинки!");
Возврат;
КонецЕсли;
СтруктураДанных = РаботаСФайламиКлиент.ДанныеФайла(ФайлСсылка);
РаботаСФайламиКлиент.ОткрытьФайл(СтруктураДанных);
КонецПроцедуры
```

View File

@ -0,0 +1,55 @@
---
title: Скопировать файл
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/скопировать-файл
---
# Описание
```bsl
// Открывает форму нового файла с копией указанного файла.
// Синтаксис
//
// Процедура СкопироватьФайл(ВладелецФайла, ФайлОснование, ДополнительныеПараметры = Неопределено,
// ОписаниеОповещенияОЗакрытии = Неопределено) Экспорт
// Параметры
//
// ВладелецФайла - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому присоединен файл.
// ФайлОснование - ОпределяемыйТип.ПрисоединенныйФайл - копируемый файл.
// ДополнительныеПараметры - Структура - параметры открытия формы:
// * ИмяСправочникаХранилищаФайлов - Строка - определяет справочник для хранения копии файла.
// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - описание процедуры, которая будет вызвана при закрытии формы
// со следующими параметрами:
// <РезультатЗакрытия> - значение, переданное при вызове Закрыть() открываемой формы;
// <ДополнительныеПараметры> - значение, указанное при создании
// ОписаниеОповещенияОЗакрытии.
// Если параметр не указан, то по завершению никакая процедура вызвана не будет.
РаботаСФайламиКлиент.СкопироватьФайл(Объект.Номенклатура, ФайлСсылка,,Оповещение);
```
# Пример применения
```bsl
&НаКлиенте
Процедура СкопироватьФайл(Команда)
ФайлСсылка = ФайлКартинкиНоменклатуры(Объект.Номенклатура);
Если ФайлСсылка.Пустая() Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("У номенклатуры не выбран файл картинки!");
Возврат;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("СкопироватьФайлЗавершение", ЭтотОбъект);
РаботаСФайламиКлиент.СкопироватьФайл(Объект.Номенклатура, ФайлСсылка,,Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура СкопироватьФайлЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") И РезультатЗакрытия.ФайлДобавлен Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("Файл скопирован");
КонецЕсли;
КонецПроцедуры // СкопироватьФайлЗавершение()
```

View File

@ -0,0 +1,41 @@
---
title: Сохранить файл как
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-клиент/сохранить-файл-как
---
# Описание
```bsl
// Открывает диалог сохранения файл, где пользователь может определить путь и имя для сохранения файла.
// Синтаксис
//
// Процедура СохранитьФайлКак(Знач ДанныеФайла, ОбработчикЗавершения = Неопределено) Экспорт
// Параметры
//
// ДанныеФайла - см. РаботаСФайлами.ДанныеФайла.
// ОбработчикЗавершения - ОписаниеОповещения
// - Неопределено - описание процедуры, которая
// будет вызвана после завершения со следующими параметрами:
// ПутьКФайлу - Строка - полный путь к сохраненному файлу.
// ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения.
РаботаСФайламиКлиент.СохранитьФайлКак(СтруктураДанных);
```
# Пример применения
```bsl
&НаКлиенте
Процедура СохранитьФайлКак(Команда)
ФайлСсылка = ФайлКартинкиНоменклатуры(Объект.Номенклатура);
Если ФайлСсылка.Пустая() Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю("У номенклатуры не выбран файл картинки!");
Возврат;
КонецЕсли;
СтруктураДанных = РаботаСФайламиКлиент.ДанныеФайла(ФайлСсылка);
РаботаСФайламиКлиент.СохранитьФайлКак(СтруктураДанных);
КонецПроцедуры
```

View File

@ -0,0 +1,44 @@
---
title: Добавить присоединенный файл из папки на сервере
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/добавить-присоединенный-файл-из-папки-на-сервере
---
# Описание
```bsl
// Добавляет новый файл из файловой системы.
// Если справочник файлов поддерживает хранение версий, то будет создана первая версия файла.
// Синтаксис
//
// Функция ДобавитьФайлСДиска(ВладелецФайлов, ПутьКФайлуНаДиске) Экспорт
// Параметры
//
// ВладелецФайлов - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - объект, к которому
// требуется прикрепить добавляемый файл.
// ПутьКФайлуНаДиске - Строка - полный путь к файлу, включающий имя и расширение файла.
// Файл должен находиться на сервере.
// Возвращаемое значение
//
// ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с созданным файлом.
ФайлСсылка = РаботаСФайлами.ДобавитьФайлСДиска(НоменклатураСсылка, ПутьКФайлу);
```
# Пример применения
```bsl
НоменклатураСсылка = Справочники.Номенклатура.НайтиПоКоду("00000000013");
ПутьКФайлу = "C:\temp\Картинки для сайта\site_image.png";
Если НЕ НоменклатураСсылка.Пустая() Тогда
Попытка
ФайлСсылка = РаботаСФайлами.ДобавитьФайлСДиска(НоменклатураСсылка, ПутьКФайлу);
ТекстСообщения = "К номенклатуре успешно присоединен файл картинки: " + ФайлСсылка;
Исключение
ТекстСообщения = "Не удалось прикрепить файл к номенклатуре по причине: " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
Иначе
ОбщегоНазначения.СообщитьПользователю("Номенклатура не найдена");
КонецЕсли;
```

View File

@ -0,0 +1,57 @@
---
title: Добавить присоединенный файл
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/добавить-присоединенный-файл
---
# Описание
```bsl
// Создает объект в справочнике для хранения файла и заполняет его реквизиты переданными свойствами.
// Синтаксис
//
// Функция ДобавитьФайл(ПараметрыФайла,
// Знач АдресФайлаВоВременномХранилище,
// Знач АдресВременногоХранилищаТекста = "",
// Знач Описание = "",
// Знач НоваяСсылкаНаФайл = Неопределено) Экспорт
// Параметры
//
// ПараметрыФайла - см. РаботаСФайлами.ПараметрыДобавленияФайла.
// АдресФайлаВоВременномХранилище - Строка - адрес, указывающий на двоичные данные во временном хранилище.
// АдресВременногоХранилищаТекста - Строка - адрес, указывающий на извлеченный текст из файла во временном хранилище.
// Описание - Строка - текстовое описание файла.
// НоваяСсылкаНаФайл - Неопределено - если у владельца файла только один справочник хранения файлов.
// - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника хранения файлов,
// которую следует использовать для добавляемого файла.
// Должна соответствовать одному из типов справочников хранения файлов владельца
// файлов. Ссылка может быть получена функцией НоваяСсылкаНаФайл.
// Возвращаемое значение
//
// ОпределяемыйТип.ПрисоединенныйФайл - ссылка на созданный присоединенный файл.
ФайлСсылка = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавления, АдресФайла);
```
# Пример применения
```bsl
НоменклатураСсылка = Справочники.Номенклатура.НайтиПоКоду("00000000016");
Если НЕ НоменклатураСсылка.Пустая() Тогда
ПутьКФайлу = "C:\temp\Картинки для сайта\site_image.png";
ДанныеФайла = Новый ДвоичныеДанные(ПутьКФайлу);
АдресФайла = ПоместитьВоВременноеХранилище(ДанныеФайла);
ПараметрыДобавления = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыДобавления.Автор = Пользователи.ТекущийПользователь();
ПараметрыДобавления.ВладелецФайлов = НоменклатураСсылка;
ПараметрыДобавления.ИмяБезРасширения = "site_image";
ПараметрыДобавления.РасширениеБезТочки = "png";
ФайлСсылка = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавления, АдресФайла);
ОбщегоНазначения.СообщитьПользователю("К номенклатуре успешно присоединен файл картинки: " + ФайлСсылка);
Иначе
ОбщегоНазначения.СообщитьПользователю("Номенклатура не найдена");
КонецЕсли;
```

View File

@ -0,0 +1,19 @@
---
title: Максимальный размер файла
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/максимальный-размер-файла
---
# Описание
```bsl
// Возвращает максимальный размер файла.
// Синтаксис
//
// Функция МаксимальныйРазмерФайла() Экспорт
// Возвращаемое значение
//
// Число - целое число байтов.
МаксРазмерФайла = РаботаСФайлами.МаксимальныйРазмерФайла();
ТекстСообщения = СтрШаблон("Максимальный размер файла %1 килобайт", МаксРазмерФайла / 1024);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
```

View File

@ -0,0 +1,42 @@
---
title: Перенести из справочника Файлы в справочник ПрисоединенныеФайлы
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/перенести-из-справочника-файлы-в-справочник-присоединенныефайлы
---
# Описание
```bsl
// Переносит файлы из справочника Файлы в присоединенные файлы при объекте-владельце файлов и помечает
// перенесенные файлы к удалению.
// Для использования в процедурах обновления ИБ, если выполняется переход от использования
// хранения файлов в справочнике Файлы на хранение файлов как присоединенных при объекте-владельце файлов.
// Выполняется последовательно для каждого элемента объекта-владельца файлов
// (элемента справочника, ПВХ, документа и т.п.).
// Синтаксис
//
// Функция СконвертироватьФайлыВПрисоединенные(Знач ВладелецФайлов, ИмяСправочника = Неопределено) Экспорт
// Параметры
//
// ВладелецФайлов - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - объект-владелец - приемник файлов.
// ИмяСправочника - Строка - если требуется конвертация в указанное хранилище.
// Возвращаемое значение
//
// Соответствие из КлючИЗначение:
// * Ключ - СправочникСсылка.Файлы - перенесенный файл, который помечен на удаление после переноса.
// * Значение - ОпределяемыйТип.ПрисоединенныйФайл - созданный файл.
РаботаСФайлами.СконвертироватьФайлыВПрисоединенные(ВладелецФайлов);
```
# Пример применения
```bsl
ТоварыСФайлами = РаботаСФайлами.СсылкиНаОбъектыСФайлами("Справочник.Номенклатура");
Если ТоварыСФайлами.Количество() > 0 Тогда
Для каждого ТоварСсылка Из ТоварыСФайлами Цикл
РаботаСФайлами.СконвертироватьФайлыВПрисоединенные(ТоварСсылка);
КонецЦикла;
Иначе
ОбщегоНазначения.СообщитьПользователю("Не найдено товаров с файлами в справочнике ""Файлы""");
КонецЕсли;
```

View File

@ -0,0 +1,46 @@
---
title: Получить двоичные данные файла
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/получить-двоичные-данные-файла
---
# Описание
```bsl
// Возвращает двоичные данные файла.
//Синтаксис
//
// Функция ДвоичныеДанныеФайла(Знач ПрисоединенныйФайл, Знач ВызыватьИсключение = Истина) Экспорт
// Параметры
//
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом.
// ВызыватьИсключение - Булево - если указать Ложь, то функция будет возвращать Неопределено
// вместо вызова исключений, уровень записи журнала регистрации будет понижен до "Предупреждение".
// Значение по умолчанию - Истина.
//Возвращаемое значение
//
// ДвоичныеДанные, Неопределено - двоичные данные присоединенного файла. Если двоичные данные файла не найдены
// в информационной базе или в томах, вызывает исключение. Если двоичные данные не
// найдены и параметр ВызыватьИсключение принимает значение Ложь, тогда
// возвращаемое значение - Неопределено.
ДвоичныеДанныеКартинки = РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки);
```
# Пример применения
```bsl
Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000016");
Если НЕ Номенклатура.Пустая() Тогда
ФайлКартинки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура, "ФайлКартинки");
Если НЕ ФайлКартинки.Пустая() Тогда
ДвоичныеДанныеКартинки = РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки);
Если ДвоичныеДанныеКартинки <> Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(ДвоичныеДанныеКартинки);
КонецЕсли;
Иначе
ОбщегоНазначения.СообщитьПользователю("У номенклатуры не выбран файл картинки");
КонецЕсли;
Иначе
ОбщегоНазначения.СообщитьПользователю("Номенклатура с кодом 000000006 не найдена в справочнике");
КонецЕсли;
```

View File

@ -0,0 +1,37 @@
---
title: Присоединенные файлы объекта
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/присоединенные-файлы-объекта
---
# Описание
```bsl
// Находит все присоединенные к объекту файлы и добавляет ссылки на них в параметр Файлы.
// Синтаксис
//
// Процедура ЗаполнитьПрисоединенныеФайлыКОбъекту(Знач ВладелецФайла, Знач Файлы) Экспорт
// Параметры
//
// ВладелецФайла - ОпределяемыйТип.ВладелецПрисоединенныхФайлов
// Файлы - Массив из ОпределяемыйТип.ПрисоединенныйФайл - массив, в который будут добавлены ссылки на файлы объекта.
РаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(НоменклатураСсылка, ФайлыОбъекта);
```
# Пример применения
```bsl
НоменклатураСсылка = Справочники.Номенклатура.НайтиПоКоду("00000000015");
Если НЕ НоменклатураСсылка.Пустая() Тогда
ФайлыОбъекта = Новый Массив;
РаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(НоменклатураСсылка, ФайлыОбъекта);
Для каждого ПрисоединенныйФайл Из ФайлыОбъекта Цикл
ОбщегоНазначения.СообщитьПользователю(ПрисоединенныйФайл);
КонецЦикла;
Иначе
ОбщегоНазначения.СообщитьПользователю("Номенклатура не найдена");
КонецЕсли;
```

View File

@ -0,0 +1,32 @@
---
title: Проверка на возможность присоединения файла к объекту
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/проверка-на-возможность-присоединения-файла-к-объекту
---
# Описание
```bsl
// Определяет возможность прикрепления добавляемого файла к владельцу файлов.
// Синтаксис
//
// Функция КОбъектуМожноПрисоединятьФайлы(ВладелецФайлов, ИмяСправочника = "") Экспорт
// Параметры
//
// ВладелецФайлов - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - объект, к которому
// требуется прикрепить добавляемый файл.
// ИмяСправочника - Строка - если указано, то выполняется проверка добавления в определенное хранилище файлов.
// Иначе имя справочника будет определено по владельцу.
// Возвращаемое значение
//
// Булево - если Истина, тогда к объекту можно присоединять файлы.
МожноПрисоединятьФайлы = РаботаСФайлами.КОбъектуМожноПрисоединятьФайлы(Ссылка);
```
# Пример применения
```bsl
НоменклатураСсылка = Справочники.Номенклатура.ПустаяСсылка();
МожноПрисоединятьФайлы = РаботаСФайлами.КОбъектуМожноПрисоединятьФайлы(НоменклатураСсылка);
ТекстСообщения = "К справочнику ""Номенклатура"" " + ?(МожноПрисоединятьФайлы, "можно", "нельзя") + " присоединять файлы.";
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
```

View File

@ -1,6 +1,6 @@
---
title: Связанные файлы по владельцу
slug: общие-работа-с-файлами/связанные-файлы-по-владельцу
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/связанные-файлы-по-владельцу
---
Получение связанных файлов по владельцу, если файлы владельца хранятся в справочнике "Файлы"

View File

@ -0,0 +1,41 @@
---
title: Скопировать присоединенные файлы
slug: общие-бсп-стандартные-подсистемы-файлы-программный-интерфейс-сервер/скопировать-присоединенные-файлы
---
# Описание
```bsl
// При программном копировании Источника создает у Получателя копии всех
// присоединенных файлов. Для интерактивного копирования необходимо использовать
// процедуру РаботаСФайлами.ПриЗаписиНаСервере.
// Источник и Получатель должны быть объектами одного типа.
// Синтаксис
//
// Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт
// Параметры
//
// Источник - ЛюбаяСсылка - объект, имеющий присоединенные файлы для копирования.
// Получатель - ЛюбаяСсылка - объект, к которому копируются присоединенные файлы.
РаботаСФайлами.СкопироватьПрисоединенныеФайлы(ИсточникСсылка, ПолучательСсылка);
```
# Пример применения
```bsl
Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000016");
Если НЕ Номенклатура.Пустая() Тогда
НоменклатураОбъект = Номенклатура.ПолучитьОбъект();
НоваяНоменклатура = НоменклатураОбъект.Скопировать();
НоваяНоменклатура.Наименование = "Наушники SONY";
НоваяНоменклатура.НаименованиеПолное = НоваяНоменклатура.Наименование;
НоваяНоменклатура.Артикул = "А123";
НоваяНоменклатура.Записать();
РаботаСФайлами.СкопироватьПрисоединенныеФайлы(Номенклатура, НоваяНоменклатура);
ОбщегоНазначения.СообщитьПользователю("Создана новая номенклатура, файлы скопированы от другой номенклатуры");
Иначе
ОбщегоНазначения.СообщитьПользователю("Номенклатура с кодом 000000006 не найдена в справочнике");
КонецЕсли;
```

View File

@ -1,6 +1,6 @@
---
title: Вывод табдок в общую форму печати
slug: общие-механизмы-печати/вывод-табдок-в-общую-форму-печати
slug: общие-печать/вывод-табдок-в-общую-форму-печати
---
```bsl
&НаКлиенте

View File

@ -1,6 +1,6 @@
---
title: Количество прописью
slug: общие-механизмы-печати/количество-прописью
slug: общие-печать/количество-прописью
---
```bsl

View File

@ -1,6 +1,6 @@
---
title: Макет печатной формы
slug: общие-механизмы-печати/макет-печатной-формы
slug: общие-печать/макет-печатной-формы
---
```bsl
//Возвращает макет печатной формы по полному пути к макету.

View File

@ -1,6 +1,6 @@
---
title: Пример вывода настроек печати
slug: общие-механизмы-печати/пример-вывода-настроек-печати
slug: общие-печать/пример-вывода-настроек-печати
---
# Сведения о внешней обработке

View File

@ -1,6 +1,6 @@
---
title: Сумма прописью
slug: общие-механизмы-печати/сумма-прописью
slug: общие-печать/сумма-прописью
---
```bsl
Результат = РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаЧислом, Валюта, БезДробнойЧасти, КодЯзыка, ДробнаяЧастьПрописью);

View File

@ -1,6 +1,6 @@
---
title: Штрихкод документа В ПФ
slug: общие-механизмы-печати/штрихкод-документа-в-пф
slug: общие-печать/штрихкод-документа-в-пф
---
```

View File

@ -1,6 +1,6 @@
---
title: Табличный документ в таблицу значений и обратно
slug: общие-работа-с-файлами/табличный-документ-в-тз
title: Табличный документ в ТЗ и обратно
slug: общие-работа-с-файлами/табличный-документ-в-тз-и-обратно
---
# Табличный документ => Таблица значений