Как очищать свойства в получателе при обмене
При выгрузке данных в формате SFO пустые свойства объектов не выгружаются.
Но на стороне клиента при загрузке иногда необходимо принудительно очищать некоторые свойства объектов.
Для этого на стороне источника необходимо в правилах выгрузки использовать секцию:
[ПодменаПустыхСвойств]
// можно установить значение, которое будет установлено в получателе для пустого свойства объекта
// также можно принудительно очищать свойства в получателе если установить "...=0"
//Справочник.Контрагенты.ОбособленноеПодразделение=0
//Документ.АвансовыйОтчет.ЦенаВключаетНДС=0
//Справочник.Контрагенты.ГоловнойКонтрагент=Справочники.Контрагенты.НайтиПоКоду("123")
//Справочник.Должности.ДатаВвода=20150101
//Сведение.МестоУчетаНМА.ОтражатьВРеглУчете=0
Как переносить данные между различными конфигурациями
1. В источнике отмечаем один конкретный документ и выгружаем
2. В получателе делаем только анализ и смотрим различие
в метаданных на странице: Различия в структуре загрузки
3. Принимаем решение какие свойства исключить, какие подменить.
Подмену и исключение настраиваем именно в правилах выгрузки
4. Повторяем итерацию пока в получателе не будет различий
в структуре метаданных
5. Все правила настраивать в источнике, так проще проверять
корректность данных на стороне получателя и быстрее будет выгрузка
Как добавить виртуальные объекты в обработку перед выгрузкой
Например необходимо добавить объекты, которых нет в источнике, но они должны загрузиться в получатель на основании определенных запросов.
Настраивать различные правила иногда получается намного сложнее, чем сделать небольшую функцию на коде 1С.
Для этого в модуле обработки ищем слово ДобавитьСвоиВиртуальныеОбъектыПередВыгрузкой,
убираем комментарий и вставяем в конец модуля обработки одноименную функцию из макета
ПримерДобавленияВиртуальныхОбъектовПередВыгрузкой.
В примере показано как добавить одну группу и один элемент справочника сотрудники.
Если необходимо добавить виртуальный документ с табличной частью, то смотри макет ПримерВыгрузкиОстатковУТвКА_ОдинСклад
Функция ДобавитьСвоиВиртуальныеОбъектыПередВыгрузкой()
// пример как добавить только одну группу и один элемент
ТЗВСотрудники = СоздатьТаблицуЗначений("ТипВид,Код,Наименование,ДатаРождения,ЭтоГруппа,Родитель");
СТЗВ1 = ТЗВСотрудники.Добавить();
СТЗВ1.ТипВид = "Справочник=Сотрудники";
СТЗВ1.ЭтоГруппа = 1;
СТЗВ1.Код = "00001";
СТЗВ1.Наименование = "Менеджеры";
СТЗВ2 = ТЗВСотрудники.Добавить();
СТЗВ2.ТипВид = "Справочник=Сотрудники";
СТЗВ2.Родитель = СТЗВ1;
СТЗВ2.Код = "00002";
СТЗВ2.Наименование = "Иванов Иван Иваныч";
СТЗВ2.ДатаРождения = Дата("20011231230000");
// добавляем виртуальную таблицу ТЗВСотрудники в ВиртуальныеТаблицыОбъектов
// таблиц может быть много, отдельная на каждый Тип=Вид
ОпределитьКолонки(ВиртуальныеТаблицыОбъектов,"ТЗ");
СТЗ = ВиртуальныеТаблицыОбъектов.Добавить(); СТЗ.ТЗ = ТЗВСотрудники;
Возврат 1;
КонецФункции
Как запустить обработку на версии ниже 8.3.13
Если необходимо запустить обработку на платформе 8.3.12 и ниже (или в режиме совместимости 8.3.12), надо в модуль обработки добавить две функции (которых не было на старых платформах): СтрРазделить и СтрСоединить
Функция СтрСоединить(М,Разделитель=";") Экспорт Стр = ""; Для Каждого ЭМ Из М Цикл Стр = Стр + ?(Стр="","",Разделитель) + СокрЛП(ЭМ); КонецЦикла; Возврат Стр; КонецФункции Функция СтрРазделить(Источник,Разделитель=";",ВключатьПустые=0) Экспорт ист = СокрЛП(Источник); Массив = Новый Массив; Если (ист<>"") Тогда Если (Разделитель="") Тогда Массив.Добавить(ист); Иначе поз = Найти(ист,Разделитель); Пока (поз>0) Цикл стр = СокрЛП(Лев(ист,поз-1)); Массив.Добавить(стр); ист = СокрЛП(Прав(ист,СтрДлина(ист)-поз)); поз = Найти(ист,Разделитель); КонецЦикла; Если (СтрДлина(ист)>0) Тогда Массив.Добавить(ист); КонецЕсли; КонецЕсли; КонецЕсли; Возврат Массив; КонецФункции
Как выгрузить обороты для сравнения через виртуальные таблицы
Если необходимо сравнить обороты в получателе с источником, создаем обработку с выполнением на стороне сервера и добавляем такой код:
// сначала надо получить ТЗОбороты запросом по необходимым счетам
ПутьКОбработке = "D:\MovingObjects.epf";
ОбработкаПереноса = ВнешниеОбработки.Создать(ПутьКОбработке,Ложь);
ТЗВОборотПоСчету = ОбработкаПереноса.СоздатьТаблицуЗначений("ТипВид,Код,ДОС,КОС");
ТЗВиртуальныеТаблицы = ОбработкаПереноса.СоздатьТаблицуЗначений("ТЗ");
Для Каждого СТЗ Из ТЗОбороты Цикл
СТЗВ = ТЗВОборотПоСчету.Добавить();
СТЗВ.ТипВид = "ОборотПоСчету=Хозрасчетный";
СТЗВ.Код = СТЗ.Счет.Код;
СТЗВ.ДОС = СТЗ.СуммаОборотДт;
СТЗВ.КОС = СТЗ.СуммаОборотКт;
КонецЦикла;
СТЗ2 = ТЗВиртуальныеТаблицы.Добавить(); СТЗ2.ТЗ = ТЗВОборотПоСчету;
ОбработкаПереноса.НачДатаВыгрузки = НД; // начальная дата в ранее созданном запросе по оборотам
ОбработкаПереноса.КонДатаВыгрузки = КонецДня(КД); // конечная дата в ранее созданном запросе по оборотам
ОбработкаПереноса.ПутьКФайлу = "D:\1.sfo";
ОбработкаПереноса.ВиртуальныеТаблицыОбъектов = ТЗВиртуальныеТаблицы;
ОбработкаПереноса.Выгрузить();
Теперь на стороне получателя интерактивно через обработку 'MovingObjects.epf' можно анализировать полученный файл 1.sfoДля сравнения остатков надо поменять ТипВид на "ОстатокПоСчету=Хозрасчетный" (сравнение остатков делается всегда на НачДатаВыгрузки)
Как выгрузить уникальный идентификатор 1С только для документов
Надо использовать следующих вариант правил выгрузки
[ПараметрыВыгрузки]
ИспользоватьУникальныйИдентификатор=1
[ИсключаемыеСвойства]
Справочник.<Любой>.УникальныйИдентификатор1С
Как переносить большие объемы РС.ДвоичныеДанныеФайлов
При выгрузке большого объема сведений ДвоичныеДанныеФайлов
на серверных базах на одном сервере 1С надо:
1. включить на закладке Опции 'Испрользовать только сервер для файлов'
2. включить на закладке 'Настройка выгрузки' 'Выгружать хранилище значений'
3. включить правила выгрузки с исключением свойств
Справочник.<Любой>.<Реквизит>
Справочник.<Любой>.<ТабличнаяЧасть>
Документ.<Любой>.<Реквизит>
Документ.<Любой>.<ТабличнаяЧасть>
Как перепровести документы определенного вида за период
Выбираем необходимый период и вид документов. Переходим на страницу "Фильтр" и устанавливаем свойство "Проведен=Да"

Переходим на закладку "Данные" и отмечаем все документы

Переходим на закладку "Обработка", устанавливаем свойство "Проведен=Да" и нажимаем "обработать"

Как изменить владельца у нескольких элементов справочника
Выбираем необходимый справочник. Переходим на страницу "Фильтр" и устанавливаем "Владелец=[Старое значение]"

Переходим на закладку "Данные" и отмечаем необходимые элементы справочника

Переходим на закладку "Обработка", устанавливаем свойство "Владелец=[Новое значение]" и нажимаем "Обработать"

Как изменить значение реквизита в определенной строке документа
Выбираем необходимый период и вид документа. На закладке "Данные" отмечаем нужный документ или несколько документов.
Переходим на закладку "Обработка" и указываем конкретный номер строки и новое значение в этой строке.

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