Содержание:
1. Синхронизация информационных баз
2. Постановка задачи по доработке обмена через универсальный формат
3. Реализация технических требований заказчика
3.1 Не регистрировать на обмен документы «Расходная накладная» 1С с префиксом «НФ»
3.2 Выгружать непроведенные, но не помеченные на удаление документы с помощью процедуры общего модуля
1. Синхронизация информационных баз
Если говорить про синхронизацию информационных баз, то на данный момент компания «1С» ведет политику постепенного перехода с традиционного обмена данными по правилам обмена на обмен данными через универсальный формат (далее обмен через УФ). Считается, что это более унифицированный вариант: нет необходимости каждый раз менять правила после обновлений конфигурации, для групповых обменов больше не нужны десятки разных настроек.
Таким образом, например, если в свежем релизе конфигурации 1С:УНФ 1.6 делать синхронизацию с 1С:Бухгалтерия 3.0, то обмен по умолчанию будет настраиваться через универсальный формат. Но обмен через УФ по сравнению с традиционным обменом имеет ряд принципиальных отличий:
1. Правила регистрации и конвертации объектов «зашиты» в конфигурацию и нет возможности загрузить их в настройке синхронизации 1С 8.3 в пользовательском режиме.
2. Нет возможности производить синхронизацию через прямое подключение к базе, только – через выгрузку в файл.
Рассмотрим доработку обмена через УФ между «1С:Управление небольшой фирмой 1.6» (далее УНФ) и «1С:Управление корпоративными финансами» (далее УКФ) на примере определенных требований заказчика.
2. Постановка задачи по доработке обмена через универсальный формат
Настройки обмена через УФ не соответствовали в полной мере требованиям заказчика. В частности, требовалось:
· Не регистрировать на обмен документы «Расходная накладная» 1С с префиксом «НФ».
· Выгружать непроведенные документы.
· Не выгружать помеченные на удаление документы.
3. Реализация технических требований заказчика
Для доработки правил выгрузки обычно используют инструмент «1С:Конвертация данных 3.0», но это способ достаточно сложный и больше подходит для серьезных доработок обмена. В нашем случае необходимо доработать механизм регистрации объектов в 1С. Правила регистрации объектов в 1С для узла обмена находятся в «общем» и самым простым способом является использование расширения в данной задаче.
В первую очередь необходимо создать новое расширение конфигурации 1С 8.3 через пункт «Конфигурация – Расширение конфигурации» 1С 8.3. Далее открываем созданное расширение и переходим в дерево основной конфигурации.
Механизм регистрации объектов обмена находится в общем модуле «ОбменДаннымиСобытия».
Рис. 1. Общий модуль «ОбменДаннымиСобытия»
Его мы и будем дорабатывать под технические требования заказчика. Добавляем данный модуль в открытое расширение (правой кнопкой мыши по объекту – 1С «Добавить в расширение»). Теперь необходимо внести правки в код общего модуля в расширении. Но есть один нюанс – по умолчанию модуль объекта недоступен для редактирования. Чтоб включить эту возможность, переходим в окно нашего расширения, находим в дереве общий модуль «ОбменДаннымиСобытия» и выбираем свойства объекта. В палитре свойств необходимо поставить галку в строке «Модуль», тем самым активировав возможности редактирования документов.
Рис. 2. Свойства общего модуля «ОбменДаннымиСобытия» в расширении
3.1.Не регистрировать на обмен документы «Расходная накладная» 1С с префиксом «НФ»
Для выполнения данной задачи потребуется «подменить» процедуру «ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена»общего модуля 1С в расширении. Для этого необходимо скопировать код процедуры основной конфигурации и вставить в общий модуль в расширении. Чтобы вызов процедуры происходил из расширения, необходимо перед процедурой прописать &Вместо («Название исходной процедуры или функции»). Важный момент: название процедуры или функции в расширении должно отличаться от исходного названия!
Чтобы документы «Расходная накладная» 1С с определенным префиксом не попадали в выгрузку, добавляем в код процедуры «ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена» проверку на содержание в номере документа префикса «НФ». Если совпадение не найдено, то документ не регистрируется на обмен.
Рис. 3. Листинг кода процедуры «ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена»в расширении
3.2. Выгружать непроведенные, но не помеченные на удаление документы с помощью процедуры общего модуля.
Для этой задачи потребуется процедура «ОбъектПрошелФильтрПравилРегистрацииПоСвойствам» того же общего модуля 1С.
Рис. 4. Процедура «ОбъектПрошелФильтрПравилРегистрацииПоСвойствам» в расширении
Данная процедура по умолчанию фильтрует только проведенные документы. Наша задача по определенным типам документов пропускать фильтрацию, тем самым регистрировать в том числе непроведенные документы, но в тоже время не выгружать помеченные на удаление.
Также копируем код исходной процедуры и вставляем в общий модуль в расширении. Добавляем в конце процедуры необходимый код с проверкой на тип документа и пометку удаления. Если условие удовлетворяет, то возвращаем «Истину», т.е. фильтрация пройдена (листинг приведен ниже).
Рис. 5. Листинг кода процедуры «ОбъектПрошелФильтрПравилРегистрацииПоСвойствам» в расширении
Таким образом можно достаточно быстро доработать правила регистрации или выгрузки обмена через УФ. И в дальнейшем, если понадобится, внести корректировки не прибегая к 1С «Конвертации данных» 8.3. Преимуществом еще является то, что нет необходимости снимать конфигурацию с поддержки, т.к. все изменения делаются в расширении конфигурации. Из минусов можно отметить то, что данный способ больше подходит для небольших корректировок обмена, т.к. после обновления файла конфигурации 1С придется контролировать и дублировать изменения в процедурах расширения. При большом количестве доработок использовать данный способ становится нерационально и тогда выбор в сторону инструмента 1С «Конвертация данных» 8.3 будет более оптимален.
Игорь Цебоев,
разработчик 1С компании ООО “Кодерлайн”.