Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

1С как программно присоединить файл


Как прикреплять файлы к справочникам и документам

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

В этой статье мы очень подробно рассмотрим работу с прикрепленными файлами. Ответим на наиболее часто задаваемые вопросы о том, какие файлы можно прикреплять в 1С? Есть ли ограничение на количество прикрепляемых файлов? Какие варианты сохранения файлов существуют? И еще очень важный момент: как это делать быстро – прямо со сканера из 1С!

Информация очень интересная. Рекомендуем!

Назначение и использование

Некоторые справочники и документы позволяют присоединять и хранить файлы, которые могут быть полезны в работе или которые по каким-то причинам нужно сохранить. Это могут быть подписанные договоры с контрагентами, дополнительные соглашения к ним, отсканированные исходники торговых накладных и счетов-фактур и другая полезная информация.

Присоединять файлы можно к любому справочнику и документу 1С?

Нет. Список справочников и документов, которые работают с прикрепленными файлами ограничен разработчиками.

Присоединить файлы можно в следующие справочники:

  • Организации;
  • Договоры контрагентов;
  • Сотрудники;
  • Физические лица.

Для документов этот список шире:

  • Авансовый отчет;
  • Акт об оказании производственных услуг;
  • Акт сверки взаиморасчетов;
  • Ведомость на выплату зарплаты в банк;
  • Ведомость на выплату зарплаты в кассу;
  • Возврат товаров от покупателя;
  • Возврат товаров поставщику;
  • ГТД Импорт;
  • Инвентаризация товаров на складе;
  • Корректировка долга;
  • Корректировка поступления;
  • Корректировка реализации;
  • Операция, введенная вручную ;
  • Отчет комитенту о продажах;
  • Передача товаров;
  • Платежное поручение;
  • Поступление доп. расходов;
  • Поступление на расчетный счет;
  • Поступление товаров и услуг;
  • Приходный кассовый ордер;
  • Расходный кассовый ордер;
  • Реализация товаров и услуг;
  • Реализация услуг по переработке;
  • Счет на оплату покупателю;
  • Счет на оплату от поставщика;
  • Счет-фактура выданный;
  • Счет-фактура полученный;
  • Таможенная декларация экспорт.

Как мы видим, по всем основным документам 1С можно хранить отсканированную первичную документацию. И этим нужно пользоваться!

Прежде чем перейти к описанию подключения файлов в справочники и документы, ознакомимся с особенностями работы с прикрепленными файлами. И сделаем это в рамках блиц-ответов на самые важные вопросы.

Есть ли ограничения на количество присоединяемых файлов?

Нет, количество файлов для присоединения не ограничивается. Но все-таки надо иметь в виду, что хранение файлов «утяжеляет» базу. Поэтому если вы будете активно использовать работу с файлами, база значительно увеличится в объеме и будет дольше обновляться.

Какие файлы можно сохранять в 1С? Это какие-то определенные форматы типа PNG, PDF, DOSX и XLSX?

Нет! Присоединять можно абсолютно любые файлы: от рисунков до музыки.

Я правильно понимаю, что возможность присоединять файлы заложена разработчиками ограниченному списку справочников и документов и вне этого списка настроить самостоятельно возможность присоединения файлов пользователю не удастся?

Да, совершенно верно! Вы сможете присоединить файлы в справочник Договоры, но в справочнике Контрагенты — это сделать не получится. Сможете присоединить файлы к справочнику Сотрудники, и не сможете – в справочнике Номенклатура. Это уже потребует доработки программы.

А можно самостоятельно настроить место хранения на диске? (Папку/каталог/другой диск)? Или куда программа по умолчанию «укладывает» эти файлы, то так тому и быть — и ничего сделать нельзя?

Все присоединенные файлы в 1С хранятся в специальном регистре сведений Сведения о файлах. Они не зависят от места на диске. Поэтому даже если вы переносите базу на новый компьютер, все данные по присоединенным файлам у вас сохранятся.

Как правильно подвязать к первичному документу файл и при этом не проводить документ заново?

Мы подвязываем сканы актов к покупкам, но поскольку оригиналы документов приходят с большим опозданием, то программа просит перепровести документы за указанный период?!

При присоединении файла к документу проводить его НЕ НАДО! Вот совсем!

После того как вы присоединили файл, выходите из документа, нажимая «крестик» в правом верхнем углу формы. Если вы не будете нажимать на кнопку Провести и закрыть, после подсоединения файла программа не будет требовать перепроводить документы.

Итак, ответы на основные вопросы по этому замечательному сервису мы получили. Теперь рассмотрим где и каким образом происходит присоединение файлов в 1С.

Открытие формы присоединения файлов

Присоединение файлов происходит прямо из формы справочников и документов по:

  • кнопке Скрепка;
  • ссылке Прикрепленные файлы.

Способ № 1. По кнопке Скрепка

Этот способ наиболее часто используется. В форме справочника или документа в командной панели располагается кнопка Скрепка для присоединения файлов.

После нажатия на кнопку Скрепка открывается стандартная форма для присоединения файлов.

Способ № 2. По ссылке Прикрепленные файлы

Специальная ссылка Прикрепленные файлы используется реже. Обычно это происходит в том случае, когда справочник или документ имеет большой массив информации, разложенный по вкладкам.

После перехода по ссылке Прикрепленные файлы открывается стандартная форма для присоединения файлов.

Принципиальной разницы между двумя способами нет – все они открывают стандартную форму присоединения файлов.

Вход в форму по кнопке Скрепка или по ссылке Присоединенные файлы по умолчанию устанавливается разработчиками.

Если файлы уже присоединены в справочнике или в документе, то в самой первой колонке списков и журналов появляется специальный знак: Скрепка.

Нужно уметь работать с этим сервисом и, самое главное, свести к минимуму время на подготовку и подключение нужных файлов в 1С.

Присоединение файлов

Есть три способа присоединения файлов:

Способ № 1. Файл с диска

Рассмотрим присоединение файла с диска на конкретном примере.

Присоединить к договору Договор купли-продажи № 3 от 11.01.2018 поставщика ООО «Трансавто» файл с договором поставки.

Шаг 1. Открыть договор Договор купли-продажи №3 от 11.01.2018 поставщика ООО «Трансавто»: раздел Справочники – Продажи и покупки – Договоры.

Шаг 2. Перейти в форму присоединения файлов по кнопке Скрепка.

Шаг 3. По кнопке Добавить — Файл с диска выбрать файл договора в папке на диске.

Шаг 4. Результат присоединения файла с диска будет выглядеть следующим образом.

Способ № 2. По шаблону

Этот способ используется для справочника Договоры, поскольку в нем предусмотрена работа с Шаблонами договоров.

Рассмотрим присоединение файла по шаблону на конкретном примере.

Присоединить к договору Договор купли-продажи №3 от 11.01.2018 поставщика ООО «Трансавто» сформированный из шаблона договоров файл с договором поставки.

Шаг 1. Открыть договор Договор купли-продажи №3 от 11.01.2018 поставщика ООО «Трансавто»: раздел Справочники – Продажи и покупки – Договоры.

Шаг 2. Сформировать печатную форму договора по кнопке Печать – Договор – Договор поставки. Нажать на кнопку Сохранить.

Шаг 3. В форме настройки сохранения договора выставить:

  • переключатель Присоединить к договору;
  • формат сохранения текста: PDF, RTF, HTML.

В примере специально выбраны сразу все форматы сохранения файла, чтобы после присоединения файлов посмотреть, что подойдет лучше для использования.

По умолчанию выставляется формат PDF. Рекомендуем использовать этот формат для хранения текста договора, поскольку редактирование в этом формате ограничено.

При выставлении переключателя в Сохранить в папку на компьютере для присоединения файла будет использоваться вариант, описанный в Способе № 1. Файл с диска.

Шаг 4. Результат сохранения текста договора.

Способ № 3. Со сканера

Самый быстрый способ присоединить файл с информацией, например, текст договора, торговые документы и т.д. – это использование сканера.

Использование сканера напрямую из 1С позволит исключить промежуточные шаги по сохранению информации в файл, сканированию данных вне 1С, сохранения скана в файл и уже только после этого прикрепления файла в 1С. Использования сканера напрямую из 1С сразу сократит время на выполнение этой работы, поэтому этим функционалом нужно уметь пользоваться.

И при этом делается все очень просто!

После сканирования изображения документа присоединенный файл к справочнику выглядит следующим образом.

Подробно по подключению сканера и присоединению файла в статье Создание файла со сканера.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Работа с файлами в 1С 8.3 (8.2)

В 1С 8.3 (8.2) для работы с файлами существует два объекта: Файл и ДиалогВыбораФайла.

Рассмотрим каждый по отдельности.

Объект 1С — файл

Объект Файл служит для управления параметрами файлов.

Сразу стоит заметить, что данный объект не предназначен для чтения и записи из файлов.

Например, прочитаем параметры некоторого файла, находящегося на диске C:

ПолноеИмяФайла = "C:\Работа с файлами\статья.txt";
 ВыбранныйФайл = Новый Файл(ПолноеИмяФайла);
 Если ВыбранныйФайл.Существует() Тогда
 СтрокаПараметров = "Параметры файла:"+Символы.ПС +
 "Полное имя файла: "+ ВыбранныйФайл.ПолноеИмя + Символы.ПС +
 "Имя: "+ ВыбранныйФайл.Имя + Символы.ПС +
 "Имя без расширения: "+ ВыбранныйФайл.ИмяБезРасширения+Символы.ПС+
 "Расширение: "+ ВыбранныйФайл.Расширение+ Символы.ПС+
 "Путь без имени: "+ ВыбранныйФайл.Путь+Символы.ПС+
 "Размер: "+ ВыбранныйФайл.Размер()+ Символы.ПС+
 "Это файл: "+ ВыбранныйФайл.ЭтоФайл()+ Символы.ПС+
 "Изменен: "+ ВыбранныйФайл.ПолучитьВремяИзменения()+Символы.ПС+
 "Только чтение: "+ ВыбранныйФайл.ПолучитьТолькоЧтение()+Символы.ПС+
 "Невидимость: "+ ВыбранныйФайл.ПолучитьНевидимость();
 Сообщить(СтрокаПараметров);
 Иначе
 Предупреждение("Файл не найден!");
 КонецЕсли;
 

В результате мы получим следующую информацию (если файл найден):

Параметры файла:
Полное имя файла: C:\Работа с файлами\статья.txt
Имя: статья.txt
Имя без расширения: статья
Расширение: .txt
Путь без имени: C:\Работа с файлами\
Размер: 899
Это файл: Да
Изменен: 18.05.2015 16:21:28
Только чтение: Нет
Невидимость: Нет

Запись в файл

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Теперь, когда мы выбрали и открыли файл, можно с ним работать, т.е. прочитать его содержимое или записать в него что-нибудь.
Рассмотрим пример:

Если ЗначениеЗаполнено(ПутьКФайлу) Тогда
 ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
 ТекстовыйДокИзФайла.Прочитать(ПутьКФайлу);
 НашТекстИзФайла = ТекстовыйДокИзФайла.ПолучитьТекст();
 Сообщить(НашТекстИзФайла);
 КонецЕсли;
 
 

Чтение файла в 1С

Часто бывает необходимо прочитать текст файла построчно, например, для анализа каждой строки. Для этого используем объект ЧтениеТекста.

Пример:

ПрочитанныйТекст = Новый ЧтениеТекста(ПутьКФайлу);
 СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();
 Сообщить(СтрокаТекстовогоФайла);
 Пока СтрокаТекстовогоФайла <> Неопределено Цикл
 СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();
 Сообщить(СтрокаТекстовогоФайла);
 КонецЦикла;
 
 ПрочитанныйТекст.Закрыть();
 

Запись текста из 1С в файл

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

Заметим, что при записи текстового файла можно установить кодировку.

Копирование файла

Здесь все очень просто

КопироватьФайл(ПутьКФайлуИсточнику, ПутьКФайлуПриемнику);
 

Перемещение

ПереместитьФайл(ПутьКФайлуИсточнику, ПутьКФайлуПриемнику);
 

Удаление

Попытка
 УдалитьФайлы("C:\Работа с файлами\статья.txt");
 Исключение
 Сообщить(ОписаниеОшибки());
 КонецПопытки;
 

Диалог выбора файла

В указанных выше примерах есть одно неудобство. Путь к файлу прописан жестко в коде. Чтобы выбрать файл интерактивно, существует объект ДиалогВыбораФайла, о котором речь пойдет ниже.

Объект ДиалогВыбораФайла служит для открытия файла (файлов), сохранения файла или выбора каталога в диалоге специального вида.

Например, выберем и откроем некоторый файл с расширением txt:
Задаем режим диалога выбора. Доступны три варианта: ВыборКаталога, Открытие, Сохранение

Режим = РежимДиалогаВыбораФайла.Открытие;
 

Создаем диалог

ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
 ДиалогОткрытия.ПолноеИмяФайла = "";
 Фильтр = "Текст, *.txt|*.txt";
 ДиалогОткрытия.Фильтр = Фильтр;
 ДиалогОткрытия.МножественныйВыбор = Истина;
 ДиалогОткрытия.Заголовок = "Выберите файлы";
 Если ДиалогОткрытия.Выбрать() Тогда
 МассивВыбранныхФайлов = ДиалогОткрытия.ВыбранныеФайлы;
 Для Каждого ИмяВыбранногоФайла Из МассивВыбранныхФайлов Цикл
 ВыбранныйФайл = Новый Файл(ИмяВыбранногоФайла);
 Сообщить(ИмяВыбранногоФайла
 + "; Размер = "
 + ВыбранныйФайл.Размер());
 КонецЦикла;
 Иначе
 Предупреждение("Нет выбранных файлов!");
 КонецЕсли;
 

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Документ 1С программно | 1s-up.ru

В этой статье научимся приемами программного создания и заполнения документов в 1С 8.3, кроме того, мы узнаем, как программно записывать и проводить документ 1С,  а также узнаем, как программно открыть основную форму документа.

Прежде чем мы начнем разбирать вопросы программной работы с документами в 1С 8.3, хочу обратить Ваше внимание, что на управляемой форме в режиме тонкого клиента мы можем программно работать (создавать, записывать и проводить) с документами только в серверном контексте. То есть, ваша процедура или функция должна выполняться под директивами &НаСервере или &НаСервереБезКонтекста.

Все примеры в этой статье я буду показывать на управляемой форме обработки, которую создал «за кадром».

Создать документ 1С программно

В моей учебной конфигурации 1С имеется простенький документ с небольшим набором реквизитов, а также с одной табличной частью.

Для программного создания документов, я сделал обработку. У этой обработки , я разработал форму и создал команду управляемой формы, которую назвал  «Создать документ прихода», поместив её на форму обработки.

Для этой команды, я сделаю обработчики на клиенте и на сервере.

В серверном обработчике мы и напишем код, который и будет создавать документ..

&НаСервере Процедура СоздатьДокументПриходаНаСервере() ДокПриход = Документы.ПриходТовара.СоздатьДокумент(); КонецПроцедуры &НаКлиенте Процедура СоздатьДокументПрихода(Команда) СоздатьДокументПриходаНаСервере(); КонецПроцедуры 

В этом коде я обратился к менеджеру документа ПриходТовара  (строка Документы.ПриходТовара), и использовал функцию менеджера документа СоздатьДокумент, которая и создает документ-объект. Переменная ДокПриход, которую мы создали будет иметь тип ДокументОбъект.ПриходТовара.

Следующим шагом, я присвою дату этому документу, для простоты, это будет текущая дата.

ДокПриход = Документы.ПриходТовара.СоздатьДокумент(); ДокПриход.Дата = ТекущаяДата(); 

Номер я присваивать не буду, потому что у объекта моего документа включено свойство Автонумерация.

В принципе, этого вполне достаточно, чтобы наш документ существовал. Но создав его при помощи функции СоздатьДокумент, мы не записали его непосредственно в базу. После выполнения кода выше, ни какого документа в базе не появится!

Записать документ 1С программно

Для того, чтобы документ 1С появился в базе, его необходимо записать.  Делается это при помощи метода документа-объекта Записать. Этот метод позволяет и записать, и провести документ. Он имеет два параметра, которые я разберу ниже. Но, метод Записать также можно использовать и без параметров, тогда он будет просто записывать документ. Что мы и сделаем.

ДокПриход = Документы.ПриходТовара.СоздатьДокумент(); ДокПриход.Дата = ТекущаяДата(); ДокПриход.Записать(); 

Все теперь документ появится в базе.

Мы его можем создать, и это будет абсолютно пустой документ, без всяких реквизитов и без заполненной табличной частью.

Для того, чтобы что-то в нем появилось, нам необходимо заполнить этот документ.

Заполнить документ 1С программно

У нашего документа два реквизита «шапки» – Склад и Комментарий. Создадим на форме обработки реквизит управляемой формы Склад с соответствующим типом, для последующей записи его в шапку документа, а реквизит комментарий заполним в ручную.

Присвоим реквизитам созданного объекта-документа нужные значения, просто обратившись через точку к этим реквизитам.

ДокПриход = Документы.ПриходТовара.СоздатьДокумент(); ДокПриход.Дата = ТекущаяДата(); ДокПриход.Склад = Склад; ДокПриход.Комментарий = "#Документ создан автоматически обработкой" ДокПриход.Записать(); 

Так мы заполнили реквизиты «шапки», но у нас имеется еще табличная часть документа, необходимо заполнить и её. Для её заполнения, я создам таблицу значений в качестве реквизита формы обработки, и помещу её на эту форму.

Мы будем в цикле обходить эту таблицу значений, создавая в каждой итерации цикла новую строку табличной части документа и заполняя её данными.

ДокПриход = Документы.ПриходТовара.СоздатьДокумент(); ДокПриход.Дата = ТекущаяДата(); ДокПриход.Склад = Склад; ДокПриход.Комментарий = "#Документ создан автоматически обработкой"; Для Каждого стрТЗ Из ТЗ Цикл НовСтрТЧДокумента = ДокПриход.СписокТоваров.Добавить(); НовСтрТЧДокумента.Номенклатура = стрТЗ.Номенклатура; НовСтрТЧДокумента.Количество = стрТЗ.Количество; НовСтрТЧДокумента.Цена = стрТЗ.Цена; НовСтрТЧДокумента.Сумма = НовСтрТЧДокумента.Количество*НовСтрТЧДокумента.Цена; КонецЦикла; ДокПриход.Записать(); 

В этом коде я обращаюсь к табличной части документа-объекта посредством точки (строка ДокПриход.СписокТоваров), получаю табличную часть этого объекта, и используя метод Добавить, создаю новую строку табличной части. А потом заполняю реквизиты табличной части документа данными из таблицы значений. Поскольку у нас названия реквизитов табличной части и таблицы значений совпадают, мы можем упростить код заполнения табличной части, используя метод ЗаполнитьЗначенияСвойств.

Для Каждого стрТЗ Из ТЗ Цикл НовСтрТЧДокумента = ДокПриход.СписокТоваров.Добавить(); ЗаполнитьЗначенияСвойств(НовСтрТЧДокумента,стрТЗ); НовСтрТЧДокумента.Сумма = НовСтрТЧДокумента.Количество*НовСтрТЧДокумента.Цена; КонецЦикла; 

Всё! Мы можем смело создать документ, который будет заполнен.

Провести документ 1С программно

Все документы, которые мы создавали ранее были не проведены. Если мы хотим, чтобы документ был записан проведенным, то необходимо записывать его немного по-другому. Если раньше мы использовали метод Записать объекта документа без параметров, то теперь необходимо применять параметры этого метода. Данный метод имеет следующий синтаксис.

Записать(<РежимЗаписи>,<РежимПроведения>)

Оба параметра это системные перечисления. Первый параметр это перечисление РежимЗаписиДокумента, которое может принимать следующие значения:

РежимЗаписиДокумента.Запись РежимЗаписиДокумента.Проведение РежимЗаписиДокумента.ОтменаПроведения 

Т.е. мы можем записать документ, провести документ и отменить проведение документа.

Во втором параметр РежимПроведения необходимо указывать системное перечисление РежимПроведениеДокумента, которое может принимать следующие значения:

РежимПроведенияДокумента.Неоперативный РежимПроведенияДокумента.Оперативный 

Т.е. мы можем провести документ как в оперативном режиме, так и в неоперативном. Если этот параметр не указан, то документ проводится в неоперативном режиме.

Изменим запись нашего документа: пусть он проводится в оперативном режиме.

ДокПриход.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный); 

Теперь документ будет сразу проведен при создании.

Изменить документ 1С программно

Часто возникают задачи, когда нужно поменять уже созданный документ, или провести документ, который был только записан. Для этого необходимо из ссылки на документ получить его объект. Для примера, я опять создам «за кадром» новую обработку, на форме которой размещу ссылку на документ, поле с типом Склад и команду. При выполнение этой команды, будет меняться склад документа, а потом этот документ будет проводиться.

Как и в прошлый раз, я создам обработчик команды на сервере и на клиенте. И в серверном обработчике напишу код получения объекта из ссылки документа.

&НаСервере Процедура ИзменитьДокументНаСервере() ДокОбъект = ДокументПрихода.ПолучитьОбъект(); КонецПроцедуры &НаКлиенте Процедура ИзменитьДокумент(Команда) ИзменитьДокументНаСервере(); КонецПроцедуры 

Мы получили объект документа, используя метод ссылки на документ ПолучитьОбъект. Имейте в виду, что этот метод можно использовать или на сервере, или клиенте в режиме толстого клиента.  Переменная, которую мы создали будет иметь тип ДокументОбъект.ПриходТовара.

Изменим склад и проведем документ. В этот раз проведем в неоперативном режиме.

ДокОбъект = ДокументПрихода.ПолучитьОбъект(); ДокОбъект.Склад = Склад; ДокОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); 

Открыть документ 1С программно

Научимся открывать документ 1С программно. Для этого мы доработаем предыдущую обработку: после изменения документа откроем основную форму этого объекта для просмотра и возможного редактирования. Для открытия формы документа, мы будем использовать метод  ОткрытьФорму, в котором будем использовать параметр Ключ, где укажем ссылку на открываемый документ.

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

Если мы сейчас выполним этот код, то откроется форма документа, с уже измененным реквизитом Склад.

 

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

 

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Работа с файловой системой в языке 1С 8.3, 8.2 (в примерах)

&НаСервере Процедура ЧтениеИЗаписьФайловНаСервере()       /// Как записать произвольное значение в файл в 1с 8.3, 8.2   // любое сериализуемое (то есть превращаемое // в строку и обратно) значение можно сохранять // в файл, например, массивы, списки значений, строки // структуры и т.д. Числа = Новый Массив; Числа.Добавить(35); Числа.Добавить(67); ЗначениеВФайл("c:\числа.txt", Числа); // эта функция работает только на сервере       /// Как восстановить произвольное значение из файла в 1с 8.3, 8.2   ЧислаИзФайла = ЗначениеИзФайла("c:\числа.txt"); Сообщить(ЧислаИзФайла[0]); // 35 Сообщить(ЧислаИзФайла[1]); // 67       /// Как записать текстовый файл в 1с 8.3, 8.2   // работает как на сервере, так и на клиенте Текст = Новый ЗаписьТекста( "c:\привет.txt", // имя КодировкаТекста.ANSI, // кодировка Символы.ПС, // разделитель строк (необ.) Ложь // перезаписывать файл, а не дописывать в конец (необ.) ); Текст.ЗаписатьСтроку("Добро пожаловать!"); Текст.ЗаписатьСтроку("Посторонним вход воспрещен."); Текст.Закрыть();       /// Как прочитать текстовый файл в 1с 8.3, 8.2   // работает как на сервере, так и на клиенте Текст = Новый ЧтениеТекста( "c:\привет.txt", // имя КодировкаТекста.ANSI, // кодировка Символы.ПС, // разделитель строк (необ.) , Истина // монопольный режим (необ.) );   // читаем пока есть что читать Пока Истина Цикл Строка = Текст.ПрочитатьСтроку(); Если Строка = Неопределено Тогда Прервать; Иначе Сообщить(Строка); КонецЕсли; КонецЦикла;   КонецПроцедуры   &НаКлиенте Процедура ОперацииНадФайлами(Команда)   // для тестов создадим пустой файл   Текст = Новый ЗаписьТекста("c:\file_src.txt"); Текст.Закрыть();       /// Как проверить существование файла в 1С 8.3, 8.2   ФайлНаДиске = Новый Файл("c:\file_src.txt"); Если ФайлНаДиске.Существует() Тогда Сообщить("c:\file_src.txt существует"); КонецЕсли;       /// Как скопировать файл в 1с 8.3, 8.2   КопироватьФайл( "c:\file_src.txt", // что копируем "c:\file_dest.txt" // куда копируем ); // перезапишет, если уже есть такой файл       /// Как переместить файл в 1с 8.3, 8.2   ПереместитьФайл( "c:\file_dest.txt", "c:\file_new.txt" ); // перезапишет, если уже есть такой файл       /// Как найти файлы в каталоге в 1с 8.3, 8.2   // возвращает массив значений типа Файл МассивНайденныхФайлов = НайтиФайлы( "c:\", // где искать "*.txt", // маска поиска Ложь // если Истина, то будет искать и в подкаталогах );   Для Каждого Файл Из МассивНайденныхФайлов Цикл Сообщить("Найден " + Файл.ПолноеИмя); КонецЦикла;       /// Как удалить файл в 1с 8.3, 8.2   // если файл readonly - будет ошибка УдалитьФайлы( "c:\file_new.txt" );       /// Как удалить файлы в каталоге по маске в 1с 8.3, 8.2   // поиск в каталоге нерекурсивный УдалитьФайлы( "c:\helpme1c", // заведомо не существующий каталог "*.txt" // маска для поиска удаляемых файлов ); // если опустить маску, то удалятся все файлы и каталог       /// Как получить имя временного файла в 1с 8.3, 8.2   Сообщить( ПолучитьИмяВременногоФайла() ); // например, c:\Temp\v8_11AE_4.tmp   Сообщить( ПолучитьИмяВременногоФайла(".txt") ); // например, c:\Temp\v8_11AE_5.txt       /// Как прочитать атрибуты файла в 1с 8.3, 8.2   Ф = Новый Файл("c:\file_src.txt");   // время последнего изменения файла Сообщить(Ф.ПолучитьВремяИзменения());   // проверяем атрибут только чтение Сообщить(Ф.ПолучитьТолькоЧтение());   // проверяем атрибут hidden (скрытность, невидимость) Сообщить(Ф.ПолучитьНевидимость());       /// Как установить атрибуты файла в 1с 8.3, 8.2   // меняем время последнего изменения файла Ф.УстановитьВремяИзменения(ТекущаяДата());   // меняем атрибут только чтение Ф.УстановитьТолькоЧтение(Ложь);   // меняем атрибут невидимости Ф.УстановитьНевидимость(Ложь);       /// Как узнать размер файла в 1с 8.3, 8.2   Сообщить(Ф.Размер()); // в байтах   // Как узнать по пути файл это или каталог в 1с 8.3, 8.2 Если Ф.ЭтоКаталог() Тогда Сообщить("Это каталог"); ИначеЕсли Ф.ЭтоФайл() Тогда Сообщить("Это файл"); КонецЕсли;       /// Как вытащить расширение файла из его пути в 1с 8.3, 8.2   Сообщить(Ф.Расширение); // .txt       /// Как вытащить имя файла без расширения в 1с 8.3, 8.2   Сообщить(Ф.ИмяБезРасширения); // file_src   КонецПроцедуры   &НаКлиенте Процедура ОперацииНадКаталогами(Команда)       /// Как создать каталог в 1с 8.3, 8.2   // каталог может уже существовать СоздатьКаталог("c:\new_dir");   // создадутся все подкаталоги СоздатьКаталог("c:\new_dir\2\3");       /// Как проверить существование каталога в 1с 8.3, 8.2   КаталогНаДиске = Новый Файл("c:\new_dir"); Если КаталогНаДиске.Существует() Тогда Сообщить("Папка c:\new_dir существует"); КонецЕсли;       /// Как удалить каталог вместе с содержимым в 1с 8.3, 8.2   УдалитьФайлы("c:\new_dir"); // мы опустили маску, поэтому удалятся все файлы // внутри каталога, а также сам каталог       /// Как получить каталог временных файлов в 1с 8.3, 8.2   Сообщить( КаталогВременныхФайлов() ); // например, c:\temp   КонецПроцедуры   &НаКлиенте Процедура РаботаСВременнымХранилищем(Команда)   // временное хранилище - объект, в который мы можем помещать // и считывать данные произвольного типа, // доступ к которому есть и на сервере и на клиенте // это позволяет передавать между сервером и клиентом // данные, которые иначе не передать       /// Как сохранить произвольное значение во временное     /// хранилище в 1с 8.3, 8.2   Список = Новый СписокЗначений; Список.Добавить("Владивосток"); Список.Добавить("Хабаровск"); Список.Добавить("Петропавловск-Камчатский");   АдресВХранилище = ПоместитьВоВременноеХранилище( Список // произвольные данные );       /// Как прочитать произвольное значение из временного     /// хранилища в 1с 8.3, 8.2   СписокИзХранилища = ПолучитьИзВременногоХранилища(АдресВХранилище); Если СписокИзХранилища = Неопределено Тогда Сообщить("Значение по этому адресу уже удалено из хранилища."); Иначе Сообщить(СписокИзХранилища[0]); // Владивосток КонецЕсли;       /// Как перезаписать уже сохраненное значение во временном     /// хранилище в 1с 8.3, 8.2   Массив = Новый Массив; Массив.Добавить(10); Массив.Добавить(20);   ПоместитьВоВременноеХранилище( Массив, АдресВХранилище );       /// Сколько времени хранится значение, сохраненное во     /// временном хранилище в 1с 8.3, 8.2   // всё зависит от второго параметра функции ПоместитьВоВременноеХранилище   // #1 если туда в качестве адреса был передан уникальный идентификатор формы // или уже существующий адрес в хранилище, то значение будет автоматически // удалено после закрытия формы   // #2 если туда в качестве адреса передан уникальный идентификатор, не // являющийся уникальным идентификатором формы, то значение будет // автоматически удалено только после завершения сеанса пользвоателя   // #3 если адрес не указан, помещенное значение будет удалено после // очередного запроса сервера   // см. примеры ниже       /// Как сохранить значение во временное хранилище на всё     /// время жизни формы в 1с 8.3, 8.2   ПоместитьВоВременноеХранилище( Массив, ЭтаФорма.УникальныйИдентификатор );       /// Как сохранить значение во временное хранилище на всё     /// время сеанса пользователя в 1с 8.3, 8.2   АдресВХранилище = ПоместитьВоВременноеХранилище( Массив, Новый УникальныйИдентификатор );       /// Как удалить значение из временного хранилища в 1с 8.3, 8.2   УдалитьИзВременногоХранилища(АдресВХранилище);       /// Как узнать является ли строка адресом во временном хранилище     /// в 1с 8.3, 8.2   Если ЭтоАдресВременногоХранилища(АдресВХранилище) Тогда Сообщить("Да, это адрес во временном хранилище."); КонецЕсли;   КонецПроцедуры   /// Как передать файл с клиента на сервер в 1с 8.3, 8.2   &НаКлиенте Процедура ПередачаФайлаСКлиентаНаСервер(Команда)   // создадим тестовый файл для передачи Текст = Новый ЗаписьТекста("c:\test.txt"); Текст.ЗаписатьСтроку("Привет,"); Текст.ЗаписатьСтроку("Мир!"); Текст.Закрыть();   ОповещениеОЗавершении = Новый ОписаниеОповещения( "ВыполнитьПослеПомещенияФайла", ЭтотОбъект );   НачатьПомещениеФайла( ОповещениеОЗавершении, , // адрес в хранилище "c:\test.txt", // имя файла Ложь, // интерактивно ЭтаФорма.УникальныйИдентификатор ); // если опустить последний параметр, то помещенный файл // будет удален после очередного запроса сервера // а если указать - то только после удаления объекта формы   // если нужно предоставить пользователю возможность // выбрать файл самому четвёртый параметр (интерактивно) // нужно установить в Истина   КонецПроцедуры   &НаКлиенте Процедура ВыполнитьПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт   Если Результат Тогда   // сохраним полученный адрес в реквизит формы АдресФайлаВХранилище = Адрес;   Сообщить( "Наконец-то! Файл " + ВыбранноеИмяФайла + " передан на сервер и сохранён во " + "временном хранилище по адресу " + Адрес);   Иначе   Сообщить("Не удалось передать файл на сервер.");   КонецЕсли;   КонецПроцедуры   /// Как прочитать файл на сервере из временного хранилища /// в 1с 8.3, 8.2   &НаСервере Процедура ПрочитатьФайлНаСервереИзХранилищаНаСервере()   Если АдресФайлаВХранилище = "" Тогда Сообщить("Сначала нужно передать файл с клиента на сервер."); Возврат; КонецЕсли;   ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВХранилище);   Если ДвоичныеДанные = Неопределено Тогда Сообщить("Похоже файл уже был удалён из хранилища."); Возврат; КонецЕсли;   ДвоичныеДанные.Записать("c:\server.txt");   Текст = Новый ЧтениеТекста("c:\server.txt"); Пока Истина Цикл Строка = Текст.ПрочитатьСтроку(); Если Строка = Неопределено Тогда Прервать; Иначе Сообщить(Строка); КонецЕсли; КонецЦикла;   КонецПроцедуры   /// Как передать файл с сервера на клиент в 1с 8.3, 8.2   &НаКлиенте Процедура ПередатьФайлССервераНаКлиент(Команда)   Если АдресФайлаВХранилище = "" Тогда Сообщить("Сначала нужно сохранить файл на сервере."); Сообщить("Воспользуйтесь кнопкой 'Передача файла с клиента...'"); Возврат; КонецЕсли;   ОповещениеОЗавершении = Новый ОписаниеОповещения( "ВыполнитьПослеПолученияФайлов", ЭтотОбъект );   ПолучаемыеФайлы = Новый Массив; ПолучаемыеФайлы.Добавить( Новый ОписаниеПередаваемогоФайла( "c:\from_server.txt", // куда сохранять на клиента АдресФайлаВХранилище // адрес в хранилище на сервере ) );   НачатьПолучениеФайлов( ОповещениеОЗавершении, ПолучаемыеФайлы, , Ложь // интерактивно );   КонецПроцедуры   &НаКлиенте Процедура ВыполнитьПослеПолученияФайлов(ПолученныеФайлы, ДополнительныеПараметры) Экспорт   Для Каждого Файл Из ПолученныеФайлы Цикл Сообщить("Получен " + Файл.Имя + " из " + Файл.Хранение); КонецЦикла;   КонецПроцедуры   /// Скачать и выполнить эти примеры на компьютере

tfs sdk - Как программно прикрепить файл к рабочему элементу TFS

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

asp.net - Как прикрепить программно созданный PDF-файл к электронному письму и отправить его?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
.

c # - Прикрепление отладчика к коду, запущенному в другом домене приложения, программным способом

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

c # - Как программно аннулировать вложение файла в InfoPath Forms

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Тал
.Окна

- Как программно установить тег файла

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

c # - Как программно добавить вложения к результатам тестирования во время сборки в VSTS?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
.

Смотрите также