Варианты настройки автообмена.

Вариант 1: запустить сеанс 1С под любым пользователем (кроме выбранного в настройках обработки), открыть обработку, включить на форме обработки галочку Автообмен, оставить обработку работать. Периодически будет выполняться обмен данными с учетом настройки по времени.

Вариант 2: ч\з планировщик Windows настроить запуск 1С с обработкой под пользователем из настроек обработки. Выполнятся задания по обмену (для которых время подошло, должна быть включена галочка Автообмен), 1С закроется.

Вариант 3: создать регламентное задание, которое будет вызывать функции выгрузки и загрузки данных из обработки. Задание должно выполнить чтение настроек, вызвать функции выгрузки и загрузки данных, выполнить сохранение настроек.

Примеры:

Windows Server 2008 (вариант 2)


bat файл (вариант 2)


Windows Server 2003 (вариант 2)



Расписание для регл. задания (вариант 3)



Регламентное задание для 8.2/8.3 (вариант 3)
Процедура в общем модуле, обработка находится в сетевом каталоге

Процедура Автообмен() Экспорт
ФайлОбработки = "\\server\mobicom\mobicom82.epf";

ДвоичныеДанные = Новый ДвоичныеДанные(ФайлОбработки);
Если ДвоичныеДанные = Неопределено Тогда
ЗаписьЖурналаРегистрации("Мобиком: ОШИБКА! Внешняя обработка '"+ФайлОбработки+"' не имеет двоичных данных", УровеньЖурналаРегистрации. Предупреждение);
Возврат;
КонецЕсли;

АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ИмяОбработки = ВнешниеОбработки. Подключить(АдресВоВременномХранилище, , Ложь);
ВнешняяОбработка = ВнешниеОбработки. Создать(ИмяОбработки);

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

ОбъектыЗагрузки = ОбъектыВыгрузки. Скопировать();
ОбъектыЗагрузки. Колонки. Добавить("ТипОбъекта");

ВнешняяОбработка. НастройкиЗагрузить(ОбъектыВыгрузки, ОбъектыЗагрузки, "");
ВнешняяОбработка. АвтообменИспользовать = Истина;
ВнешняяОбработка. ЗагрузитьДанные(ОбъектыЗагрузки);
ВнешняяОбработка. ВыгрузитьДанные(ОбъектыВыгрузки);
ВнешняяОбработка. НастройкиСохранить(ОбъектыВыгрузки, ОбъектыЗагрузки);
КонецПроцедуры


Регламентное задание для 8.1 (вариант 3)
Процедура в общем модуле, обработка встроена в конфигурацию

Процедура Автообмен() Экспорт

ВнешняяОбработка = Обработки. mobicom81.Создать();

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

ОбъектыЗагрузки = ОбъектыВыгрузки. Скопировать();
ОбъектыЗагрузки. Колонки. Добавить("ТипОбъекта");

ВнешняяОбработка. НастройкиЗагрузить(ОбъектыВыгрузки, ОбъектыЗагрузки, "");
ВнешняяОбработка. АвтообменИспользовать = Истина;
ВнешняяОбработка. ЗагрузитьДанные(ОбъектыЗагрузки);
ВнешняяОбработка. ВыгрузитьДанные(ОбъектыВыгрузки);
ВнешняяОбработка. НастройкиСохранить(ОбъектыВыгрузки, ОбъектыЗагрузки);
КонецПроцедуры



Для работы с регламентным заданием в обработке в процедурах НастройкиЗагрузить и НастройкиСохранить необходимо сделать изменения:

НЕ нашли? Не то? Что вы ищете?

Процедура НастройкиЗагрузить(ОбъектыВыгрузки, ОбъектыЗагрузки, Заголовок) Экспорт

       // определяем файл настроек

       //лПолноеИмяОбработки = ИспользуемоеИмяФайла;

       лПолноеИмяОбработки = "\\server\mobicom\mobicom82.epf";

       

       лФайл = Новый Файл(лПолноеИмяОбработки);

Процедура НастройкиСохранить(ОбъектыВыгрузки, ОбъектыЗагрузки) Экспорт

       // определяем файл настроек

       //лПолноеИмяОбработки = ИспользуемоеИмяФайла;

       лПолноеИмяОбработки = "\\server\mobicom\mobicom82.epf";

       

       лФайл = Новый Файл(лПолноеИмяОбработки);

Настройка обработки.

Ручной автообмен.

Объекты выгрузки и объекты загрузки.

Имя раздела – имя таблицы в облаке.
Наименование – произвольное наименование, для представления на форме обработки.
Выключено – любой символ. Раздел не участвует в обмене данными.
Замещение – “true” - таблица в облаке очищается и записываются новые данные, “false” - данные в облаке обновляются/добавляются.
Таб. часть – подчиненный справочник, табличная часть документа, как задано в облаке.
Связка – имя поля, связывающего таб. часть и основной объект.

Отбор – имя объекта, как задано в конфигураторе. Если пусто, или в начале стоит «*» - отбор не используется.
Тип объекта – «С» - справочник, «Д» - документ, «Р» - регистр. Для правильной подстановки отбора в запрос.
Комментарий – произвольный комментарий.

Раздел объекта выгрузки

Имя секции (области) – имя таблицы в облаке. На рисунке - ref_agreements.
Мобиком – наименование поля в таблице облака.
Источник – наименование поля данных (в таблице, результате запроса) в 1С. Если поле пустое, или в начале «*» - поле не участвует в обмене.
Ссылка – если это ссылочное поле, тип ссылки, как задано в облаке. Дополнительно по этому полю накладывается отбор (если не помечено «*») в запросе. Подробности ниже.
Описание – произвольное описание.
Запрос – первая строка - основной текст запроса (без дополнительных фильтров).
Есть условие – «1» или «0». Есть уже в тексте основного запроса условие или нет. Для правильной вставки дополнительных отборов в запрос.
Доп. при выгрузке – первая строка - текст модуля, который будет выполнен после выполнения запроса (если нужно с выбранными данными совершить какие-то действия перед их записью в выходной файл данных).

Формирование запроса

Это основной запрос. В нем уже есть условие, поэтому в графе «Есть условие» стоит «1».
Дополнительно к запросу при работе обработки будут добавлены отборы

и соответствующие параметры в запрос (объекты, полученные ранее в запросах в соответствующих разделах)

Выгружаемые данные

Дополнительные «хаки»

При выгрузке данных:

Простой фильтр по дополнительному полю.

Если при выборке данных для текущего раздела нужно добавить отбор в запрос, но в структуре данных раздела нет необходимого поля, можно сделать так:
* добавить новую строку в раздел
* в «Источник» поставить «#», в «Ссылка» - раздел, в котором выбирались нужные данные, в «Запрос» - поле в запросе, на которое нужно наложить отбор

Если в запросе условие находится внутри текста (после условия идет еще текст), место вставки доп. отборов помечается «<ГДЕ?>».

Сложный фильтр по дополнительному полю.

Если запрос сложный, и отбор по одному дополнительному полю надо вставить в несколько мест:

* добавить новую строку в раздел
* в «Источник» поставить «#», в «Ссылка» - раздел, в котором выбирались нужные данные, в «Запрос» - слово «ПАРАМЕТР»

* в запросе в нужные места в условиях вставить параметры. для примера с договорами -  «&Отбор_ref_agreements»

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

Дополнительные структуры для доп. обработки данных

Если в поле «Запрос» поставить слово «НЕОПРЕДЕЛЕНО» - к запросу и к тексту запроса не будет применено никаких действий, только соответствующий раздел (в данном случае ref_agreements) пометится для вызова. Это нужно, например, для: если в том разделе (ref_agreements) заполняется какая-то структура, данные из которой необходимы для обработки результатов текущего раздела.

Сложная выборка данных

Если запросом невозможно сразу выбрать или подготовить данные, или их не требуется выбирать запросом, в поле «Запрос» можно вставить простой текст запроса типа «ВЫБРАТЬ 1 КАК Поле1», в столбце «Ссылка» включить нужные поля, выключить ненужные, при этом для нужных в столбце «Запрос» поставить «НЕОПРЕДЕЛЕНО», чтобы не влиять на текст запроса.

Вся работа по выборке данных ведется в «Доп. при выгрузке»

Формирование XML-данных

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

Если невозможно установить уникальные коды по полю «Ссылка» (уникальность достигается при использовании нескольких полей), в результате запроса поле «Ссылка» должно отсутствовать (можно, например, воспользоваться «Контрагенты. Ссылка КАК КонтрагентСсылка,»). Оно добавляется позже вручную, и заполняется композитным кодом. Также если при этом необходимо в дальнейшем использовать объекты этого раздела в отборах в других разделах, необходимо установить «лАвтоИдентификатор = Ложь;» и самостоятельно добавить нужные данные в «лСписокФильтров».

При загрузке данных:

Тип значения в 1С определяется по значению из «Ссылка» и настройки в разделе «Объекты выгрузки».

При загрузке из облака «Заявки» (doc_preorders) поле employee будет автоматически преобразовываться к типу «СправочникСсылка. Пользователи» и значение запишется в поле «Ответственный» созданного объекта 1С (в данном случае документ ЗаказПокупателя).

Если значение из облака невозможно сразу преобразовать к типу данных 1С (в 1С у поля составной тип данных, при генерации кода значения для облака использовались составные коды, другие случаи), можно использовать переменную «лПеременные» ( = Новый Структура;), которая сбрасывается в начале обработки нового объекта.
В данной строке в столбце «Доп. при загрузке» можно вставить выражение, которое сохранит значение в структуру «лПеременные», или выполнит другие действия с текущим значением.
В дальнейшем в дополнительных действиях можно необходимым образом обработать эти значения.

Общее:

Если в процессе обработки раздела нужно сохранить какой-то набор данных, который понадобится при обработке данных других разделов, можно использовать переменную «лКонстанты» ( = Новый Структура;), которая актуальна в процессе всей работы выгрузки/загрузки данных.