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