Пвд 1с что это
ФСС гарантирует, что ИС ФСС РФ обеспечивает все необходимые условия защиты информации и сохранения ее конфиденциальности в соответствии с требованиями законодательства в сфере информационных технологий. Сведения о диагнозе пациента медицинской организации, сформировавшей ему электронный листок нетрудоспособности, работодателю не предоставляются, предоставляется только код. Сторонние лица не получают доступа к электронному листку нетрудоспособности.
В условиях СЭДО работодатель получает информацию об изменении состояний ЭЛН автоматически, после оформления подписки на получение оповещений, поэтому в соответствии с Федеральным законом от 27.07.2006 № 152-ФЗ «О персональных данных» работодателю потребуется согласие сотрудника.
Извещения ФСС. Функционал
Извещения ФСС – извещения из ФСС о представлении недостающих документов для прямой выплаты пособий.
Извещения ФСС реализованы во многих управляемых конфигурациях 1С, например:
Бухгалтерия предприятия (начиная с версии 3.0.87.22) - раздел «Зарплата и кадры» - «Извещения ФСС».
Зарплата и кадры (начиная с версии 3.1.14) - раздел «Кадры» – «Извещения ФСС».
1С Уполномоченный представитель – раздел «Персонифицированный учёт» - «Извещения ФСС».
2. Если необходимо скрыть извещения, которые уже обработаны (отмечаются в списке зеленым флажком), можно установить флажок «Извещения в работе».
3. Для получения извещений нажмите на кнопку «Получить из ФСС».
4. По кнопке «Открыть извещение ФСС» или из документа «Извещение ФСС» открывается документ, который прислал ФСС. С ним необходимо ознакомиться и понять, что требует ФСС. После этого можно подтвердить получение извещения.
После отправки подтверждения начинается отсчет 5 рабочих дней, необходимых для предоставления недостающих сведений. А если пользователь в течение 3 дней не отправит подтверждение прочтения, то ФСС отправит извещение заказным письмом. В разделе Извещения ФСС указывается, что подтверждение отправлено, а также сколько дней осталось, чтобы предоставить сведения, требующие уточнения.
Из раздела «Согласия на уведомления об ЭЛН» (раздел «Кадры» – «Согласия на уведомления об ЭЛН») можно контролировать процесс получения согласий, получить печатную форму согласия, включать или отключать подписку на изменения состояний ЭЛН сотрудника из ФСС.
Для получения печатной формы согласия нужно выделить строку с сотрудником (или несколько) и нажать на кнопку «Согласие», программа автоматически создаст документ.
Поля документа заполняются автоматически, указать нужно только ответственного за обработку персональных данных и записать документ.
Далее в зависимости от того, какое решение принял сотрудник, можно менять статус согласия (статусы можно менять сразу нескольким сотрудникам, предварительно выделив их в списке). После записи документа статус согласия меняется на "Ожидает подписания". Зарегистрировать подписание сотрудником согласия необходимо по кнопке Сотрудник подписал согласие. Тогда статус согласия поменяется на "Подписано". Для согласия можно установить и другие статусы: "Сотрудник не планирует подписывать согласие", "Пометить на удаление согласие", "Сотрудник отозвал согласие".
Если сотрудник отзовет свое согласие или будет уволен, нужно поменять статус согласия на «Отозвано», а также отключить подписку. Программа отслеживает состояние согласия сотрудника и своевременно напоминает о необходимости включить или отключить подписку.
Признаком того, что филиал взаимодействует с ФСС от имени головной организации является:
незаполненный регистрационный номер и дополнительный код ФСС филиала;
регистрационный номер/дополнительный код филиала, совпадающий с регистрационным номером/дополнительным кодом головной организации.
Статью подготовила Алхова Татьяна, специалист по сервисному обслуживанию франчайзинговой сети "ИнфоСофт".
О том, что "Конвертация данных" - это удобный инструмент и прочую нужную информацию о ней, вы можете найти в справке самой конфигурации. Я же хочу поделиться своим кратким пояснением как ею пользоваться. Речь пойдет о версии 2.1. Если кому-то пригодится, одной из лучших благодарностей будет ваш лайк.
Когда требуется из одной системы выгружать данные в другую систему, то как правило настраивается план обмена, который автоматически (по расписанию) выгружает/загружает данные по неким правилам. Эти самые правила обмена удобно написать в конфигурации 1С "Конвертация данных" 2.1 (КД 2.1).
Обменивающиеся системы могут быть совершенно разными или идентичными, ограничений нет.
Другим применением КД 2.1 может быть написание правил для "ручной" выгрузки/загрузки данных с помощью обработки "Универсальный обмен данными XML", которая есть в любой типовой конфигурации. (Если в вашей системе вы не находите эту обработку, скачайте её и воспользуйтесь как внешней).
Если между системами настроен план обмена, то объект регистрируется к выгрузке, в случае его записи или проведении, и выполнении условий регистрации для данного объекта (ниже будет подробнее).
Эти условия регистрации для объекта могут быть прописаны в самой системе непосредственно в коде с помощью режима Конфигуратор, или в правилах обмена, в файле "RegistrationRules.xml" в типовых конфигурациях на УФ.
В качестве примера рассмотрим типовой обмен на управляемых формах (УФ) между ЗУП 3.1 и БУХ 3.0.
В ЗУП 3.1 в плане обмена "ОбменЗарплата3Бухгалтерия3" в реквизитах и табличных частях можно указать условия обмена, например, выгружаем только по определенным Организациям и не выгружаем персональные данные сотрудников. А в макетах плана обмена прописаны типовые правила (от разработчиков 1С), выделила для наглядности квадратом в Рис. 1.
Пример формы плана обмена в режиме предприятия показан на Рис. 3.
Откройте Администрирование - Синхронизация данных Рис. 2:
Учить настраивать обмен не буду, как это сделать легко найти в официальной документации.
На форме Плана обмена указано, что выгружаем только по конкретной организации и сводно по сотрудникам, другими словами персональные данные не выгружаем.
Рис. 3
Правила обмена могут быть типовыми (из конфигурации) или внешними (из файла на компьютере).
Правила из конфигурации удобно сохранить в файл, который выгружается архивом, распаковать архив и загрузить в Конвертацию данных для модификации.
Для этого нажмите "Загрузить комплект правил":
Правилами выгрузки является файл "ExchangeRules.xml", после его модификации, упаковываем три файла назад в архив и загружаем. Как загрузить "ExchangeRules.xml" в конвертацию данных показано на Рис. 19.
Так же изменять можно и правила регистрации "RegistrationRules.xml", например, если нужно выгрузить документ, не взирая на условие Плана обмена. Например, одно условие действует на 4 вида документов, но нам требуется всё же один документ выгрузить. Условие по этому документу можно просто закомментировать Рис. 8.
В моём примере по документу "ВедомостьНаВыплатуЗарплатыПеречислением" игнорируется условие "НеВыгружатьПерсональныеДанныеФизическихЛиц".
Открыть "RegistrationRules.xml" в конвертации данных не получится.
Файл "CorrespondentExchangeRules.xml" является правилами выгрузки базы корреспондента. То есть правила "CorrespondentExchangeRules.xml" и "ExchangeRules.xml" базы корреспондента (в моём примере это БУХ 3.0) должны совпадать.
Далее информация по самой конвертации данных.
Регистрировать для выгрузки все справочники, связанные с документом, и прописывать по ним ПВД не нужно. По ним сформируем ПКО при конвертации свойств (реквизитов объекта и реквизитов табличных частей объекта) (возможно станет яснее, посмотрев на Рис. 11).
Стандартная выборка (стрелка 2 Рис. 9) содержит в себе все реквизиты объекта, включая табличные части.
В ПВД указано Правило конвертации объекта (ПКО) (стрелка 3 Рис. 9), в данном примере ПКО называется "НачислениеОценочныхОбязательствПоОтпускам", все ПКО располагаются на первой закладке формы настроек правил обмена.
С левой стороны имеются обработчики: "Перед обработкой", "Перед выгрузкой", "После выгрузки", "После обработки" (стрелка 4 Рис. 9). В каждом из этих обработчиков при вызове "Информации по обработчикам" (стрелка 5 Рис. 9) можно получить сведения о выполняемых в нём действиях и возможных параметрах (в каждом обработчике список параметров немного различается).
Например, обработчик "Перед обработкой":
В Информации по тексту ниже указан вот такой пример:
Можно написать своё условие: например, если реквизит "Флаг" установлен в Истину, тогда такой объект нужно выгрузить по другому ПКО:
В случае, если при выгрузке вы пользуетесь произвольным алгоритмом, вам необходимо инициировать параметр ВыборкаДанных (стрелка 6 Рис. 10).
В рис. 11 указала связь всех правил. ПВД является ключевым триггером для выгрузки объекта по правилам конвертации, поэтому начинаем с него.
ПКО
Теперь перейдем к ПКО "НачислениеОценочныхОбязательствПоОтпускам" (стрелка 7 Рис. 12), состоящему из правил конвертации свойств (ПКС):
Ссылочные свойства выгружаются по указанным ПКО (стрелка 8 Рис. 12). То есть при выгрузке реквизитов "Организация" и "Ответственный" они будут выгружены согласно правилам ПКО с названиями "Организации" и "Пользователи".
В ПКО можно указать правила поиска объекта:
Признак (Стрелка 10 Рис. 13) не задан, следовательно, в случае, если объект не найден, то он будет создан.
Дополнения:
Обратите внимание, на Рис. 11 я обозначила раздел "Важно" стрелкой 6, так вот стрелка 11 - это тот самый признак, который необходимо установить, если вы используете произвольный алгоритм для ПВД.
Не забывайте пользоваться информацией по обработчикам (стрелка 12).
Если вы решили выгружать все изменения справочников и документов, то обратите внимание в ПВД на закладку "Дополнительно", там задан "Порядок выполнения".
По ссылкам ниже вы можете почерпнуть дополнительную информацию:
Создание с нуля (кратко)
У нас есть конфигурация источник и конфигурация приемник (они могут быть идентичными).
В случае, если конфигурации различаются, в каждой из конфигураций нужно запустить обработку "MD82Exp.epf" или "MD83Exp.epf", в зависимости от версии платформы.
Как-то по особому называть файлик выгрузки не нужно. При загрузке система сама определит наименование конфигурации.
Далее выгруженную структуру (структуры) загружаем в конвертацию.
Далее выбираем на рабочем столе конвертации пиктограмму "Правила обмена данными", нажимаем "Добавить" и в открывшемся окне выбираем конфигурации.
При появлении картинки ниже, жмите или "Закрыть" или "Создать новое правило обмена данными".
Загрузка имеющихся правил (кратко)
Если структура конфигурации была загружена только правилами, то в ней может не быть многих объектов.
Чтобы объекты добавить, вам нужно выгрузить структуру метаданных (описано в пункте "Создание с нуля" немного выше).
И далее загрузить эту структуру в имеющуюся конфигурацию.
Специальные предложения
подчеркнул много интересного) но много где и туман после прочтения статьи) некоторые вещи непонятны) видимо надо ознакомиться с Быстрым освоением КД в самой конфигурации и перечитать вашу статью)
(1) Кирилл, старалась вспомнить с чем у самой возникали трудности, но работаю с конфигурацией довольно давно и многие вещи уже кажутся очевидными.
Напишите мне в личку все вопросы, я расширю статью :)
Конвертация данных - это инструмент создания переноса для ленивых. Умея пользоваться этим инструментом можно быстренько набросать правила и перекинуть из одной базы 1С в другую базу, не обязательно в 1С. Но для реально сложных и постоянных обменов я бы его не рекомендовал. У меня были случаи когда вреда от использования КД было намного больше, чем если бы, долго но качественно, написал свою выгрузку-загрузку через dbf или txt с разделителями.
1) Например обработками из состава КД не контролируется дата запрета редактирования, и можно легко завалить базу в закрытом периоде. Когда данные потащатся по ссылкам.
Найдут эту ошибку через несколько недель, когда будет поздно откатывать из архива. Потом трудозатратное восстановление затертых данных.
2) Отладиться и поймать ошибку в коде, можно, но нужно обладать опытом и сноровкой.
3) Обработки универсального обмена громоздки с плохо читаемым кодом.
4) Файл обмена громоздкий, т.к. содержит текст правил обмена. Структура файла не очень понятна простому смертному. Например Нпп - это номер по порядку и т.д.
5) В случае изменения структуры хотя бы одного реквизита приемника или источника, весь обмен перестает работать, пока заного не перегрузишь конфигурации. Это сильно напрягает, когда конфигурация громоздкая, и постоянно ведется ее доработка или обновления. Например если изменили тип реквизита "строка 100 символов" на "строка неограниченной длины", будет ошибка несоответстия типов, хотя это никак не влияет на обмен.
6) Свой самописный обмен, проще отлаживать, понятная логика и структура файла, надежнее в использовании, файл меньше размером, не нужно гонять правила в файле. Но разрабатывать дольше по времени.
Каждый выбирает свое.
(4)
1. для этого предусмотрены события вызываемые перед загрузкой объектов в целевую БД, вот там та и нужно проверять закрыт период или нет
2. ну есть сложности, однако если правила не автоматически создаются, то ошибки легко находятся, так как все своими золотыми ручками делалось
3. а где легко?
4. ну так пишите правила, которые не будут тянуть за собой все данные из базы, а только те что действительно нужны. файл на выходе не предназначен для конечного юзера, да как и для программиста, это уже из разряда хакерства туда лезть ну или с точки зрения прогера контроль результата
5. ну к слову сказать, в некоторых ситуациях выгружать конфигурацию свежую не имеет смысла, так как к реквизитам объектов можно обращаться не только, если они явно есть в структуре конфигурации, у вас же под рукой язык программирования с поздним связыванием, к реквизиту можно из кода событий обращаться
6. сталкивался я с вручную написанными обменами, ничего хорошего, люди могут еще более странным образом так на извращаться, что мама не горюй
ikalmykia; kyrasol; Алексей Воробьев; Irwin; mib7; Dementor; sys1c; red80; jif; DarkAn; Новиков; MenZurKa; perepetulichka; sergelemon; mythos; + 15 – Ответить
Я не имею права судить Ваши проф качества, но комментарий больше походит на "Я так привык, а другие делают не правильно!"
(6) Раз 20 писал правила на КД разной сложности, и несколько сотен раз свои механизмы обмена, это личной опыт, использования этого инструмента.
Про контроль даты запрета, понятно, что после того как на грабли наступишь, будешь уже втыкать проверки во все возможные обработчики. ТС написал статью для новичков, моя задача их предупредить о всех подводных камнях.
Ни слова не писал, что я так привык а другие делают не правильно, старался объективно написать все приемущества и недостатки данного инструмента, с которыми столкнутся новички.
Свой обмен - это ни какие не правила, нет там вообще правил, забудьте про термины навязываемые фирмой 1С.
По личному опыту, написал свой обмен и забыл на долгие долгие годы.
А правила обмена, постоянно требуют вмешательства, практически после каждого обновления.
А во времена медленного интернета и дорогово траффика, когда обмен работает по расписанию с интервалом 15 минут, от них больше вреда было чем пользы. Самих данных с гулькин нос, зато правила тащим туда-сюда.
Конвертация - это универсальный механизм. А за универсальность всегда приходится платить.
LuxVeritatis; Forest; AZel84; red80; jif; user761890; ice-net; DarkAn; Новиков; kild; IvanovAV; + 11 – Ответить
6) Свой самописный обмен, проще отлаживать, понятная логика и структура файла, надежнее в использовании, файл меньше размером, не нужно гонять правила в файле. Но разрабатывать дольше по времени.
Самый быстрый обмен - это прямая заливка на T-SQL из источника в приемник, без всяких промежуточных файлов и прочего. Но, чтобы напр., написать такой обмен, который бы как и КД тащил все по ссылке, предположим для какого-нибудь типового документа типа РТУ - вы потратите времени столько, сколько на разработку правил для всей конфигурации. Кроме того, в процессе оптимизации, вы придете к еще более сложному варианту когда хранимки хранятся на сервере, вьюшки имеют русские имена и их нужно актуализировать и еще много такой вот магии. Я этого говорю не на бла-бла-бла, а как чел, который ранее такие обмены и писал. Поверите ли на слово, но поддерживать такой обмен в актуальном состоянии и тем более баго-фиксить и трейсить - это задача не на, а в - В несколько раз сложнее чем на любой КД. Поэтому, в последствии, я все всем переписал на КД. Да медленнее, иногда значительно медленнее, но очень просто поддерживаемый и любые вопросы по нему, решаются относительно просто. Аналогичные вопросы на скулевом обмене решаются всегда на стороне скуля и надо обладать хорошими скилами не только в T-SQL как таковом, но и хорошем понимании "внутренней" кухни самой платформы. В итоге, я сейчас, с позиции именно практического опыта, не могу представить - когда я еще буду писать такие велосипедные обмены на скуле.
Казалось бы, всего лишь одна функция из арсенала разработчика правил обмена на Конвертации данных 2.1, но понимание этой функции расширяет ваши возможности при написании качественных правил обмена в несколько раз. Да, что там писать эти правила? Сопоставил реквизиты, сопоставил табличные части, да еще помощник автоматически создаст необходимые ПКО, ПКС, ПВД. А как быть, когда нужно передать Регистр сведений в регистр сведений, да не просто передать, а привязать это действие к выгрузке определенных элементов, например, элементов справочника Физические лица? Или как передать табличную часть справочника в документы, да так, чтобы одна строка табличной части создавала ровно один документ на стороне приемника? А как быть, если невозможно сделать соответствия между объектами и данные для приемника необходимо собирать из разных источников? Именно для подобных задач вам может понадобиться функция ВыгрузитьПоПравилу.
Здесь, я расскажу вам о тех ситуациях, в которых мне понадобилась эта функция, и как она меня не раз выручила. Все свое повествование я сопровожу реальными примерами, которые реализовывались мной в одном из проектов.
Описание функции ВыгрузитьПоПравилу().
Функция ВыгрузитьПоПравилу() используется для выгрузки объекта в xml-узел и возвращает узел ссылки на этот объект.
В процессе выгрузки эта функция вызывается из :
ПВД, когда объект из выборки получен и необходимо произвести его конвертацию.
ПКО, когда необходимо выгрузить связанную с выгружаемым объектом информацию.
ПКС, когда свойство имеет ссылочный тип и необходимо выгрузить по ссылке из этого свойства объект.
Из функции ВыгрузитьПоПравилу() могут быть вызваны другие функции, выгружающие субконто, свойства и т.д. этого объекта, а из этих функций – рекурсивно может быть вызвана функция ВыгрузитьПоПравилу(). После того, как объект со всеми необходимыми свойствами выгружен, управление возвращается в то место кода, откуда функция была вызвана . Таким образом, вызов этой функции из обработчиков событий какого-либо правила (ПВД, ПКО, ПКС), не изменяет процесса выгрузки объекта по этому правилу.
Функция ВыгрузитьПоПравилу() имеет ряд параметров
Выгрузка произвольной выборки данных через стандартную выборку с регистрацией объекта источника.
Необходимость в такой задаче может возникнуть, когда объект "источника" и объект "приемника" имеют различную смысловую или функциональную структуру .
Например, документ "источника" позволяет вводить информацию по нескольким подразделениям предприятия, документ "приемника" позволяет вводить информацию только об одном подразделении предприятия.
Данная задача отлично решается при помощи произвольного алгоритма выборки в ПВД, но данное решение имеет два недостатка:
- Мы лишаемся механизма регистрации изменений;
- Алгоритм произвольной выборки отказывается работать в БСП.
БСП - библиотека стандартных подсистем. В частности, имеет своем составе подсистему "Обмен данными", данная подсистема реализует механизмы автоматической синхронизации данных между конфигурациями, по правилам написанным в Конвертации данных.
- Создаем ПВД со Стандартным алгоритмом выборки;
- Указываем объект выборки;
- Пишем обработчик "Перед выгрузкой"(хочу подчеркнуть, что нужно использовать именно этот обработчик). Например, следующего содержания:
Большую часть этого обработчика, как вы можете видеть, занимает отбор данных необходимых для выгрузки. Тут и множество фильтров: по подразделениям, по видам расчетов и механизм разбиения одного документа "источника" на несколько документов "приемника". Если коротко, то в данном примере табличная часть одного документа "источника" разносится по табличным частям нескольких документов "приемника", а значением разбиения данных является значение Подразделения.
Для удобства работы при отборе данных мы использовали Таблицу значений, наш алгоритм подразумевает ПКО с получением данных из "входящих данных", которые будут переданы в функцию ВыгрузитьПоПравилу, поэтому в соответсвующем алгоритме мы производим перевод Таблицы значений в Массив структур.
На следующем шаге мы обходим отобранные данные и вот уже в этом месте мы используем нашу функцию ВыгрузитьПоПравилу. Параметр Документ, здесь является структурой, которую мы передаем как входящие данные, а второй передаваемый нами параметр, это название ПКО, которому мы передаем наши данные.
В самом конце мы отменяем выполнение стандартной выгрузки, так как все необходимые данные связанные с объектом выборки мы уже выгрузили.
Тем самым мы сохраняем функциональность регистрации изменений - документ изменился, зарегистрировался для выгрузки, данные выгрузили. И в то же время делаем произвольный отбор необходимых нам данных.
Выгрузка Регистр сведений -> Регистр сведений с зависимостью от переноса другого объекта.
Типичным примером такой задачи является перенос контактной информации физического лица. Простейший способ решения задачи - это перенос всех "Физических лиц" и всего регистра сведений "Контактная информация" физических лиц. Что делать если нам необходимо переносить не всех физических лиц? Например, только тех физических лиц, которые упоминаются в каком-либо переносимом нами документе. В таком случае, как известно, ПКС документа вызывает ПКО справочника "Физические лица" и тем самым обеспечивается перенос физических лиц упоминаемых в документе.
В переносе "Контактной информации" физических лиц в данной ситуации может помочь функция ВыгрузитьРегистр, очень похожая на функцию ВыгрузитьПоПравилу.
Хочу отметить, что потребность в использовании функции ВыгрузитьРегистр у меня появилась, когда я начал адаптировать правила под БСП уже отлаженные на обработке Универсальный обмен XML. Регистры через обработку спокойно выгружались с использованием функции ВыгрузитьПоПравилу, но БСП ни как не хотело правильно понимать такую выгрузку, в результате чего пришлось переписывать код через ВыгрузитьРегистр.
В обработчике"После выгрузки в файл" ПКО "Физические лица", пишем код следующего вида:
Как видно, в коде отбираются все записи регистра сведений, относящиеся к текущему выгружаемому Физическому лицу, а полученная выборка обходится в цикле.
Для того, чтобы выгрузить записи регистра сведений через функцию ВыгрузитьРегистр, необходимо подготовить структуру НаборЗаписей, которая имеет два поля: Отбор и Строки.
ПКО "КонтактнаяИнформация" имеет следующий вид:
Выгрузка Табличная часть -> Регистр сведений.
По своему решению задача аналогична предыдущей. С той лишь разницей, что информацию для регистра сведений "приемника" брать придется из других объектов "источника", а точнее табличной части того объекта, который на данный момент выгружается. Если бы на стороне "приемника" была так же табличная часть, то задача легко решалась бы в виде ПГКС. Поэтому снова воспользуемся функцией ВыгрузитьРегистр.
Рассмотрим пример переноса информации по ученым степеням Физического лица. Опять создаем код в обработчике "После выгрузки в файл" ПКО "Физические лица". Так как задача аналогичная предыдущей привожу только, код отбора и выгрузки данных из обработчика:
Выгрузка Табличная часть -> Документ.
Предположим, в "источнике" информация для переноса хранится в менее детализированном виде, чем в приемнике, но достаточном для переноса. Например, мной решалась задача по переносу информации об образовании физических лиц из ЗиКБУ в Университет. Понятно, что на стороне кадровой программы нужна минимальная информация об образовании физических лиц, главное что сотрудник обладает необходимой квалификацией и хватит. А вот на стороне университета, информация об образовании, а точнее о дипломах хранится куда более подробно, в связи со спецификой учереждения.
И опять задача решается, при помощи все той же функции ВыгрузитьПоПравилу.
Вот пример выгрузки Дипломов физических лиц. Все тот же обработчик "После выгрузки в файл" ПКО "Физические лица", пишем следующий код:
В общем, как вы понимаете, можно приводить еще много вариаций перегрузок: справочники, документы, регистры. Главное, надо понимать, что не стоит фанатично бросаться на функции ВыгрузитьПоПравилу и ВыгрузитьРегистр.
Замечания по перегрузке.
1. У меня возникли сложности при использовании правил в БСП, в части выгрузки объектов по ссылкам, проблема решилась принудительной установкой параметра ВыгрузитьОбъект в значение Истина, для каждого ПКС ссылочного типа:
Подводим итоги. Когда использовать эти функции?
- Вам необходимо перегрузить объекты с сильно различной структурой или на стороне "источника" необходимо собирать объекты для выгрузки из разных объектов.
- Вам необходимо перегружать объекты с привязкой к выгрузке других объектов.
UPDATE от 11.11.2015
А что если оптимизировать выше написанное?
Пишу дополнение к статье, после оставленного пользователем TarasovAV комментария. Данный пользователь заметил, что можно оптимизировать выгрузку связанной информации, путем накопления списка тех объектов, информацию о которых надо будет отдельно выгружать, а потом через один запрос отобрать сразу всю информацию.
Описываю алгоритм предложенный вышеуказанным пользователем:
1. В правиле конвертации "После загрузки правил обмена", создается параметр типа ТаблицаЗначений, в который будет накапливаться список объектов, для которых в последующем будет выгружаться информация:
2. В в обработчике "После выгрузки" ПКО "Физические лица" (именно для них в примерах мы выгружаем контактные данные, образование и т.п.), мы пополняем нашу таблицу значений новым физическим лицом, проверяя перед этим, а не добавлено ли уже это физическое лицо в таблицу:
3. И финальным действием, будет непосредственная выгрузка информации, только уже с отбором по все физическим лицам сразу. Для этого все обработчики, что были приведены выше начиная, необходимо перенести в правило конвертации "После выгрузки данных", запросы же необходимо изменить, чтобы в них проверялось не равенство одному элементу, а вхождение значения реквизита в массив элементов:
Обратите внимание, как изменилась установка параметра запроса и проверка условия в запросе:
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (243):
Добрый день!
Попытался решить задачу из главы 6 урок 2 с помощью произвольного алгоритма. При передачи свойства «АВСкласс» в параметр и обращении к этому параметру в ПКО «После загрузки» возвращается «Неопределено». Причем все отрабатывает корректно при передачи данных в приемник. Подскажите пожалуйста в чем может быть причина?
…
(текст комментария доступен только участникам Мастер-группы)
Да, я передаю свойство “АВСкласс” в параметр объекта, в файле я этого параметра к сожалению не вижу. Попробовал скопировать еще раз, как Вы рекомендовали, не помогло.
…
(текст комментария доступен только участникам Мастер-группы)
Ольга, добрый день! Благодарю за помощь!
Выполнил все Ваши рекомендации.
1. В свойстве “АВСкласс” убрал ПКО “КлассыКонтрагентов”, в обработчике “Перед выгрузкой” прописал
Если НЕ Источник.ЭтоГруппа Тогда
Если Источник.АВСкласс = Перечисления.КлассыКонтрагентов.Акласс Тогда
Значение = "Акласс";
ИначеЕсли Источник.АВСкласс = Перечисления.КлассыКонтрагентов.Вкласс Тогда
Значение = "Вкласс";
ИначеЕсли Источник.АВСкласс = Перечисления.КлассыКонтрагентов.Скласс Тогда
Значение = "Скласс";
КонецЕсли;
КонецЕсли;
После вышеупомянутых манипуляций в файле данных появился узел “ЗначениеПараметра” с заполненным значением.
2. В обработчике ПКО “После загрузки” прописал
Если Константы.ИспользоватьКлассификациюКонтрагентов.Получить() Тогда
Если НЕ Объект.ЭтоГруппа И ПараметрыОбъекта <> Неопределено Тогда
Объект.АВСкласс = ПараметрыОбъекта["АВСкласс"];
Объект.Записать();
ОбъектМодифицирован = Ложь;
Сообщить(ПараметрыОбъекта["АВСкласс"]);
КонецЕсли;
КонецЕсли;
но в итоге в конечной базе реквизит “АВСкласс” все еще остается незаполненным.
…
(текст комментария доступен только участникам Мастер-группы)
Большое спасибо, Ольга! Все заработало!
Добрый день.
Видео 1-6-7 – Обеспечение проведения документа.
После добавления кода для проведения документа, при загрузке в конечную базу выдается ошибка.
Как ее вылечить?
Для теста загрузил выгрузку конечной базы, которая была в материалах курса.
Выполнил перенос (без установки режима записи и проведения) – ошибок нет.
В конечной базе пробую вручную провести документ – ошибка “Поле объекта не обнаружено (Хозрасчетный)”.
Этого поля нигде нет.
Спасибо.
…
(текст комментария доступен только участникам Мастер-группы)
в задание 1.5.3 сделал ПВД “ВводНачальныхОстатков”
ВыборкаДанных = Новый ТаблицаЗначений;
ВыборкаДанных.Колонки.Добавить("Дата");
ВыборкаДанных.Колонки.Добавить("ОстаткиНоменклатуры");
Пока ВыборкаПериод.Следующий() Цикл
// Вставить обработку выборки ВыборкаПериод
СтрокаДата = ВыборкаДанных.Добавить();
СтрокаДата.Дата = ВыборкаПериод.Период;
ОстаткиНоменклатуры = Новый ТаблицаЗначений;
СтрокаДата.ОстаткиНоменклатуры = ОстаткиНоменклатуры;
ОстаткиНоменклатуры.Колонки.Добавить("Период");
ОстаткиНоменклатуры.Колонки.Добавить("ВидДвижения");
ОстаткиНоменклатуры.Колонки.Добавить("Организация");
ОстаткиНоменклатуры.Колонки.Добавить("Номенклатура");
ОстаткиНоменклатуры.Колонки.Добавить("Количество");
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтрокаНабор = ОстаткиНоменклатуры.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаНабор, ВыборкаДетальныеЗаписи);
КонецЦикла;
КонецЦикла;
Создал ПКО “ВводНачальныхОстатков” см рисунок 1 и 2, код
В ПКС Номенклатура написал код
Если ТипЗнч(ОбъектКоллекции.Номенклатура) = Тип("СправочникСсылка.Материалы") Тогда
ИмяПКО = "Номенклатура";
ПКО = НайтиПравило(Источник, ИмяПКО);
ИначеЕсли ТипЗнч(ОбъектКоллекции.Номенклатура) = Тип("СправочникСсылка.Продукция") Тогда
ИмяПКО = "МатериалНоменклатура";
ПКО = НайтиПравило(Источник, ИмяПКО);
КонецЕсли;
В конечную базу документ ввод начальных остатков загружается пустым, не могу понять в чем дело….
…
(текст комментария доступен только участникам Мастер-группы)
Если я правильно понимаю, то движения в xml файле есть…
Вопрос закрыт, причина была в отриц остатках
все разобрался, причина была в отриц. остатках…
Здравствуйте.
подскажите как быть с ошибкой: метод Добавить при загрузке в ДЗ 1.5.2
…
(текст комментария доступен только участникам Мастер-группы)
Перенесла, ошибка не изменилась.
…
(текст комментария доступен только участникам Мастер-группы)
…
(текст комментария доступен только участникам Мастер-группы)
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте.
В первой версии было в ПередЗагрузкойДанных, по рекомендации перенесла в ПередВыгрузкойДанных.
Вернула обратно в ПередЗагрузкойДанных.
…
(текст комментария доступен только участникам Мастер-группы)
С этой ошибкой разобралась
Уже писал свой вопрос меня отправили на страницу соответствующего занятия. В моём случае это перенос табличной части документа поэтому пишу здесь.
…
(текст комментария доступен только участникам Мастер-группы)
Набор записей регистра сведений “Плановые начисления”. Ссылочные типы которые с ошибкой при переносе не пере записываются. В правиле конвертации справочника сотрудники стоят флаги: не создавать новый объект если он не найден и не пере заполнять существующие. На скриншоте код с ошибкой до строки “Набор.Записать();” ссылочные типы видны.
…
(текст комментария доступен только участникам Мастер-группы)
В ПВД произвольный алгоритм запросом получаю ссылки на подразделение потом через ВыгрузитьПоПравилу() передаю имя правила и ссылку на подразделение как источник. В ПКО поиск документа по подразделению пишу: “Значение = Источник;” в ПКГС таб части Начисления запросом получаю сотрудников виды начислений и суммы результат запроса передаю в коллекцию объектов. Загрузка проходит без ошибок если программно не вызывать проведение документа, ошибка при последующем проведении вручную. Какие данные нужны для более подробного ответа ?
…
(текст комментария доступен только участникам Мастер-группы)
Разьясните пожалуйста 1 момент в решении преподавателя:
В обработчике конвертации После загрузки данных он присваивает ДокументОбъект = Неопределено; А затем и в 1 и во 2 условии все равно получает ДокументОбъект от Ссылки. Ссылка у нас существует всегда (он заполнятеся в ПКО). Не логичнее вынести это в общий код перед условиями? Или я чего-то не понял?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте, подскажите, почему возникает такая ошибка при загрузке?
Ошибка при загрузке данных: : Поле объекта не обнаружено. А какой объект непонятно
…
(текст комментария доступен только участникам Мастер-группы)
К сожалению, не особо стало понятнее..
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
У меня есть документ с табличной частью.
В ПКГС табличной части в обработчике ПередОбработкой я делаю отбор, то есть мне нужны не все строки табличной части, а только некоторые. Далее пишу:
КоллекцияОбъектов = РезультатЗапроса.Выгрузить();
Все работает верно, но я не могу понять, как мне и в каком месте прописать отказ от выгрузки документа, если в табличной части стало пусто. (Ну то есть в документе нет строк, соответствующих моему условию).
В файл обмена документ выгружается с пустой табличной частью, а мне нужно, чтобы такой документ не выгружался совсем.
Пытаюсь сделать проверку в обработчиках ПКО , он не видит, что табличная часть пустая.
Использую ПВД – стандартную выборку.
Подскажите, пожалуйста.
…
(текст комментария доступен только участникам Мастер-группы)
подскажите как перенести контактную информацию из регистра сведеней КИ в тч КИ объекта (конфигурации из бп2 в бп3). Проблема в том что в бп3 надо у поля значениеполей представить в виде xml.
Запрос = Новый Запрос;
Запрос.Текст =
“ВЫБРАТЬ
| КонтактнаяИнформация.Представление,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Вид КАК ВидДляСписка,
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Поле1 КАК Поле1,
| КонтактнаяИнформация.Поле2 КАК Поле2,
| КонтактнаяИнформация.Поле3 КАК Поле3,
| КонтактнаяИнформация.Поле4 КАК Поле4,
| КонтактнаяИнформация.Поле5 КАК Поле5,
| КонтактнаяИнформация.Поле6 КАК Поле6,
| КонтактнаяИнформация.Поле7 КАК Поле7,
| КонтактнаяИнформация.Поле8 КАК Поле8,
| КонтактнаяИнформация.Поле9 КАК Поле9,
| КонтактнаяИнформация.ТипДома КАК ТипДома,
| КонтактнаяИнформация.ТипКорпуса КАК ТипКорпуса,
| КонтактнаяИнформация.ТипКвартиры КАК ТипКвартиры
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Объект = &ТекущийОбъект”;
Запрос.УстановитьПараметр(“ТекущийОбъект”, Источник);
Выборка = Запрос.Выполнить().Выбрать();
В данной статье будут рассмотрены десять приемов работы с конвертацией данных 2.1. Указанные приемы явно не описываются в документации (справке), но их полезно знать и применять. Для наглядности приёмы работы сопровождаются описанием реализации и практическими примерами.
Чтобы выгрузить один объект источника в несколько объектов приемника, можно использовать мощный инструмент расширения возможностей правил конвертации – «ВыгрузитьПоПравилу».
Синтаксис функции:
Пример реальной задачи. Необходимо выгрузить справочник – «НоменклатурныеГруппы» в три объекта на стороне приемника: «НоменклатурнаяГруппа» (справочник), «ЗаказНаПроизводство» (документ), «СтатусыЗаказов» (регистр сведений). Для решения данной задачи можно использовать функцию «ВыгрузитьПоПравилу».
В правилах выгрузки данных (далее-ПВД) в обработчике «ПередОбработкой» происходит выгрузка в объект приемника «НоменклатурнаяГруппа» по стандартной выгрузке (ИмяПКО), а в обработчике «ПослеВыгрузки» происходит выгрузка в объекты «ЗаказНаПроизводство» и «СтатусыЗаказов» с помощью функции «ВыгрузитьПоПравилу»:
Если необходимо выгрузить иерархический справочник (элементы и папки) с учетом иерархии и поиск в базе приемника будет осуществляться по внутреннему идентификатору объекта источника (по полям поиска не будет продолжен поиск), то для корректной выгрузки иерархии необходимо установить галочку – «Поиск» у реквизита «ЭтоГруппа» (см. рисунок 1).
Рисунок 1 – Выгрузка иерархического справочника.
Если не установить галочку «Поиск» у реквизита «ЭтоГруппа», то папки объекта будут выгружаться как элементы.
Объекты регистрируются по правилам регистрации объектов к выгрузке только при изменении реквизитов объекта, которые указаны в правилах конвертации свойств (далее-ПКС) объекта (правила обмена данными). При необходимости регистрировать объект к выгрузке и при изменении реквизитов, которые не указаны в ПКС, достаточно данные реквизиты добавить в ПКС и установить галочку – «отключить» (см. рисунок 2).
Рисунок 2 – Реквизиты объекта для правил регистрации объекта.
Это может потребоваться для задачи, когда у нас есть реквизиты на стороне базы источника, которых нет в базе приемника, и только при их изменении объекты должны регистрироваться к обмену.
Когда стоит задача выгружать вместо регистрируемого объекта другой объект, то при регистрации исходного объекта в правилах регистрации объектов в обработчике «ПослеОбработки» через метод «ЗарегистрироватьИзменения» плана обмена можно зарегистрировать необходимый объект на узлах плана обмена.
Синтаксис метода:
ЗарегистрироватьИзменения (Узлы, Данные)
Пример реальной задачи. Несколько документов «Списания с расчетного счета» по одному документу «Заявка на расходование ДС» необходимо выгружать из конфигурации источника в один документ «Списания с расчетного счета» конфигурации приемника. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета».
В продолжение пункта 4. При выгрузке любого объекта происходит проверка, соответствует ли он существующим правилам регистрации. Если при регистрации вместо исходного объекта регистрируется к выгрузке другой объект, то новый объект также будет проходить проверку по своему типу правил регистрации объектов. В случае несоответствия правилам регистрации, объект будет выгружать, как «УдалениеОбъекта».
Для устранения данной нестыковки выгружаемого объекта и правил регистрации объекта, нужно использовать в правилах регистрации в обработчике «ПослеОбработки» параметр «Выгрузка».
Описание параметра Выгрузка:
Выгрузка (только чтение) – Булево – параметр определяет контекст выполнения правила регистрации. Истина – правило регистрации выполняется в контексте выгрузки объекта. Ложь – правило регистрации выполняется в контексте перед записью объекта.
Пример реальной задачи. При изменении документа «Списания с расчетного счета» регистрируется к обмену документ «Заявка на расходование ДС», который при выгрузке собирает по определенным правилам данные со всех документов «Списания с расчетного счета». Но документ «Заявка на расходование ДС» может выгружать независимо по своим правилам регистрации, которые не совпадают с правилами регистрации при регистрации из документа «Списания с расчетного счета».
Если по одному объекту источнику в правилах конвертации объектов присутствуют несколько правил, то система будет использовать по умолчанию правило, которое совпадает по наименованию с наименованием объекта источника (см. рисунок 3).
Рисунок 3 – Выбор правила конвертации объекта по умолчанию.
Пример реальной задачи. Данный подход может пригодиться при выгрузке субконто, когда система определяет правила выгрузки объекта по умолчанию.
При необходимости создавать на стороне приемника новые элементы документов (справочников) и подставлять их в исходный объект, можно применить следующий подход:
- определить правило заполнения нового документа (справочника) на стороне приемника (например, через входящие данные);
- описать заполнение реквизита нового документа (справочника) в исходном объекте (например, через исходящие данные);
- заполнять при выгрузке на стороне источника новый документ (справочник) уникальным значением (например, числом).
Пример реальной задачи. Необходимо на стороне приемника создавать новые документы «ДокументРасчетовСКонтрагентом» в документе ввод начальных остатков по счетам взаиморасчетов. На стороне источника заполняем реквизит «ДокументРасчетовСКонтрагентом» при выгрузке начальных остатков по счетам взаиморасчетов уникальным значением (числом):
В исходном объекте («ВводНачальныхОстатков») описываем правила выгрузки реквизита «ДокументРасчетовСКонтрагентом»:
Определяем правило заполнения «ДокументаРасчетовСКонтрагентом» на стороне приемника (см. рисунок 4).
Рисунок 4 – Правили выгрузки «ДокументРасчетовСКонтрагентов».
В конвертации данных нельзя создать параметр с типом «ТаблицаЗначений» на вкладке «Параметры» (см. рисунок 5).
Рисунок 5 – Допустимые типы для параметров конвертации данных.
Возможность создать параметр с типом «ТаблицаЗначений» при необходимости присутствует в системе, необходимо в общем обработчике «ПередЗагрузкойДанных» определить параметр.
Также необходимо в общем обработчике «ПослеЗагрузкиДанных» удалить данный параметр.
При выгрузке из базы источника можно указывать вместо элемента перечисления или предопределенного значения справочника текстовое значение, которое равно наименованию элемента перечисления или предопределенного значения справочника.
Пример реальной задачи. В базе приемника присутствует реквизит – «ТипПлатежа» с типом «Перечисление». При выгрузке реквизита (обработчик: «Перед выгрузкой») можно указать текстовое значение равное наименованию элемента перечисления на стороне базы приемника (см. рисунок 6). Данный подход может ускорить процесс разработки в конвертации данных.
Рисунок 6 – Заполнение реквизита с типом «Перечисление».
Когда необходимо выгрузить большой объем данных и нет необходимости выгружать полностью ссылочные данные, то можно сократить объем выгружаемых данных с помощью параметров «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку») в обработчике «ПриВыгрузке» правил конвертации свойств (ПКС):
Пример реальной задачи. Данное ускорение может потребоваться, когда все ссылочные объекты (нормативно-справочная информация) из базы источника ежедневно интегрируется в базу приемника, а документы должны транслироваться с определенным интервалом (раз в месяц). В таком случае при обмене документами между базами нет необходимости полностью передавать ссылочные объекты, а можно передавать только ссылку, что ускорит процесс выгрузки.
Рассмотренные приемы работы позволят повысить производительность и эффективность работы с программой конвертацией данных 2.1.
Статью подготовил Аналитик-эксперт по информационным системам "ИнфоСофт" Ретунский Александр.
Читайте также: