Методика перевода работы пользователей на другую информационную базу
В процессе работы возникает необходимость перевести пользователей на работу с другой информационной базой, например при переходе на другую версию платформы (например, перейти с версии 1С:Предприятие 8.1 на версию 1С:Предприятие 8.2) или при переходе на другую СУБД (например, переход с файлового варианта на клиент-серверный вариант).
Это можно сделать двумя способами:
Выполнить конвертацию (для перехода на новую версию) или выгрузку/загрузку (для перехода на другую СУБД) существующей информационной базы и продолжить работу с информационной базой в новом варианте.
Для выполнения такого перехода необходимо выполнить следующие действия:
- Остановить работу существующей информационной базы;
- Выполнить работы по преобразованию информационной базы (перевод на новую версию 1С:Предприятия, перевод на новую СУБД, обновление конфигурации);
- Продолжить работу.
Для выполнения такого перехода необходимо выполнить следующие действия:
- Выполнить доработки, обеспечивающие работоспособность текущей информационной базы в новой версии 1С:Предприятия или на новой СУБД (если они необходимы);
- Развернуть новую информационную базу и настроить обмен данными между двумя информационными базами;
- Выполнить переход на новую информационную базу;
- При необходимости выполнить возврат к исходной информационной базе или полностью перейти к работе с новой информационной базой.
Данный метод обеспечит минимальное время простоя существующей системы, идентичность данных в двух информационных базы, возможность в любой момент времени безболезненно перейти к использованию исходной информационной базе без потери данных.
Данная статья посвящена описанию второго способа миграции между информационными базами.
Весь процесс миграции состоит из нескольких шагов, описание которых приведено ниже. В описании этих шагов будут использованы следующие термины:
- Исходная информационная база – информационная база, с которой планируется переход.
- Новая информационная база – информационная база, которую планируется эксплуатировать на новой версии 1С:Предприятия или на другой СУБД.
- Вспомогательная конфигурация – отдельная конфигурация, содержащая метаданные, необходимые для работы обмена данными.
Внимание!
Перед любыми доработками исходной конфигурации или информационной базы – выполните резервное копирование информационной базы, а все эксперименты выполняйте на копии реальной информационной базы.
Описание методики миграции
Данный раздел содержит подробное описание методики миграции между различными информационными базами с помощью создания новой информационной базы.
Доработки исходной информационной базы
Доработки можно разделить на две группы:
- Необходимые для обеспечения работоспособности системы в новых условиях. Эти доработки необходимо выполнять по необходимости.
- Необходимые для осуществления синхронизации двух информационных баз. Эти доработки следует выполнять всегда.
Доработки для обеспечения работоспособности
Доработки прикладного решения могут потребоваться, например, в случае перехода на другую СУБД. Определить необходимость доработок можно после ознакомления с приложением 8. Особенности работы с различными СУБД книги 1С:Предприятие 8.2. Руководство разработчика .
Все изменения следует выполнять так, чтобы минимально затрагивать структуру метаданных, т.к. такое изменение может потребовать существенное время на операцию реструктуризации информационной базы.
Доработки для обеспечения синхронизации данных
Для того чтобы данные обеих информационных баз были идентичными (это необходимо для того, чтобы можно было в любой момент времени выполнить переход на использование исходной информационной базы без потери данных), необходимо настроить обмен данными между информационными базами. Описание механизмов обмена данными приводится в главе 15. Механизмы обмена данными книги 1С:Предприятие 8.2. Руководство разработчика , а рекомендации по работу с этими механизмами можно получить на диске ИТС в разделе Методические рекомендации по конфигурированию – Механизм обмена данными.
Для регистрации измененных объектов следует использовать специальный объект метаданных — ПланОбмена. Состав плана обмена в исходной и новой информационных базах должен включать все объекты конфигурации. При этом не следует устанавливать у используемого плана обмена флажок Распределенная информационная база, т.к. в решаемой задаче нельзя выделить главный узел (на разных этапах работа ведется в разных информационных базах). Кроме того, использование распределенной информационной базы невозможно в случае перехода с 1С:Предприятия версии 8.1 на 1С:Предприятие версии 8.2. Рекомендуется на время перехода не выполнять изменений в конфигурации, а при необходимости внесения таких изменений выполнять синхронизацию конфигураций другими способами.
Необходимо реализовать механизмы выгрузки/загрузки данных в файлы обмена (или любой другой механизм взаимодействия между двумя информационными базами).
Если обмен должен выполняться в автоматическом режиме, следует использовать регламентные задания, подробнее о которых можно прочитать в главе 18. Механизм заданий книги 1С:Предприятие 8.2. Руководство разработчика .
Развертывание новой информационной базы и настройка регулярного обмена
После того, как исходная информационная база подготовлена к переходу (включая создание плана обмена), необходимо выполнить резервную копию исходной базы и из этой копии выполнить создание новой информационной базы.
Затем в обеих информационных базах следует настроить механизм автоматического двустороннего обмена данными (механизмы которого были созданы во время подготовки информационной базы к переходу) и проверить его работоспособность.
При использовании автоматического обмена необходимо выполнить настройку расписания работы регламентного задания так, чтобы обмен проходил максимально быстро и не препятствовал работе пользователей.
Процесс миграции
Весь процесс миграции можно разделить на несколько этапов:
- После организации новой информационной базы, выполняется работа пользователей в исходной информационной базе, с одновременной передачей новых данных в новую информационную базу.
- Выполняется перевод всех пользователей на работу в новой версии, данные автоматически передаются в предыдущую версию (для сохранения актуальных данных в случае необходимости возврата к предыдущей версии). Переход выполняется с помощью редактирования существующей записи об информационной базе в списке общих информационных баз. В этом случае переход будет выполнен максимально незаметно для пользователей.
- Если в процессе эксплуатации возникают проблемы с новой версией информационной базы – выполняется быстрый перевод пользователей обратно на предыдущую версию информационной базы.
- Выполняется модификация новой информационной базы с целью устранения обнаруженных недостатков, после чего повторяется перевод пользователей.
Механизм автоматической передачи данных позволит поддерживать данные информационных баз в синхронном состоянии для того, чтобы в любой момент времени можно выполнить переход на исходную информационную базу без потери данных.
После того, как станет понятно, что возврат в исходную информационную базу больше не актуален, можно отключить механизм обмена. После этого исходная и новая информационные базы перестанут выполнять синхронизацию данных, и возврат к исходной информационной базе станет невозможен.
Описание перехода на примере перехода на новую версию 1С:Предприятия
Доработка конфигурации
Для перехода на 1С:Предприятия версии 8.2, следует ознакомиться с разделом Переход на версию 8.2 с версий 8.1 и 8.0 файла V8Update.htm , идущего в составе дистрибутива версии 1С:Предприятие 8.2.
Внимание!
Если для доработки конфигурации необходимо вносить изменения в метаданные, влияющих на структуру таблиц базы данных, то это следует делать в версии исходной конфигурации. В противном случае будет невозможно выполнять обмен данными с помощью планов обмена.
Добавление механизма обмена
Для обеспечения возможности синхронизации данных между разными версиями информационной системы, в исходной и новой информационных базах организуется обмен данными с помощью планов обмена. Для этого следует объединить исходную конфигурацию с конфигурацией, прилагаемой к данной статье (вспомогательная конфигурация).
Для этого следует выполнить следующее:
- Выполнить резервную копию исходной информационной базы (средствами конфигуратора или СУБД).
- Выполнить объединение (меню Конфигурация – Сравнить/объединить с конфигурацией из файла ) исходной и вспомогательной конфигураций. При выполнении объединения следует сбросить флажки для всех объектов, кроме плана обмена Миграция , для которого также следует установить режим объединения Взять из файла .
- Затем необходимо включить в состав плана обмена Миграция все объекты конфигурации (при этом в новую информационную базу будут переноситься все объекты исходной информационной базы).
Перед созданием копии информационной базы следует выполнить ряд подготовительных операций:
- В плане обмена Миграция (для того, чтобы открыть форму списка плана обмена, следует с помощью команды меню Операции – План обмена — Миграция между информационными базами ) следует настроить предопределенный узел обмена:
- Код: Источник .
- Наименование: Исходная ИБ .
- Код: Приемник .
- Наименование: Дополнительная ИБ .
- Путь выгрузки: укажите путь к каталогу, который будет доступен по чтению и записи для обеих конфигураций.
- Путь загрузки: укажите путь к каталогу, который будет доступен по чтению и записи для обеих конфигураций.
Удалите регистрацию изменений для новой информационной базы – для этого встаньте курсором на элемент плана обмена с кодом Приемник и нажмите кнопку Удалить регистрацию .
Сформируйте копию исходной информационной базы. Сделать это можно как средствами СУБД (если используется клиент-серверный вариант), так и скопировав файл 1Cv8.1CD (если используется файловый вариант). При этом необходимо помнить, что для создания копии информационной базы в файловом варианте всем пользователям следует завершить работу с этой базой.
Развертывание новой информационной базы
Подготовьте инфраструктуру к развертыванию новой информационной базы:
- Создайте новую информационную базу в новой версии 1С:Предприятия. Для этого воспользуйтесь файлом с копией информационный базы, созданной на предыдущем шаге.
- Откройте новую информационную базу с помощью Конфигуратора новой версии 1С:Предприятия. При необходимости утвердительно ответьте на вопросы, касающиеся конвертации информационной базы.
- Откройте новую базу в режиме 1С:Предприятия. При переходе на версию 1С:Предприятие 8.2 необходимо запустить толстый клиент в режиме обычного приложения.
- Откройте план обмена Миграция (меню Операция – План обмена — Миграция между информационными базами ).
- Замените реквизиты планов обмена так, чтобы у предопределенного плана обмена код стал равен Приемник , наименование Дополнительная ИБ , а у второго плана обмена код стал равен Источник, а наименование Исходная ИБ.
- Теперь наши информационные базы настроены на двусторонний обмен данными.
Эксплуатация
В процессе эксплуатации исходной и новой информационной базы необходимо синхронизировать данные, вводимые в различных информационных базах. Для этого необходимо в плане обмена Миграция регулярно выполнять процедуры загрузки и выгрузки данных, например с помощью команд формы списка плана обмена. Если механизм ручного обмена не устраивает, следует настроить автоматический обмен данными с помощью регламентных заданий.
Во время эксплуатации двух систем следует помнить, что в процедурах загрузки/выгрузки данных не предусмотрено механизма разрешения коллизий, т.е. данные всегда принимаются, вне зависимости от того, есть изменение этих данных в текущей информационной базе или нет (другими словами – не следует допускать одновременной работы пользователей в обеих информационных базах). Это связано с тем, что в общем случае непонятно, какая из двух информационных баз является главной, а какая – вспомогательной. Однако если в базе-приемнике данных для принимаемого объекта зарегистрировано изменение, об этом выполняется запись в журнале регистрации следующего содержания: Данные были изменены, но произошло замещение данными из информационной базы ИмяБазыИсточника .
Для того чтобы перевести всех пользователей на новую версию информационный базы, следует изменить местоположение информационной базы в записи, описывающей информационную базы, которая находится в списке общих информационных баз.
Отключение синхронизации с предыдущей версией информационной базы
В случае если необходимо прекратить синхронизацию данных с предыдущей версией информационной базы, следует выполнить следующее:
Перенос доработок конфигурации в расширение
(18)Если реквизиты поправил, то изменил структуру БД, нужна реструктуризация, тут никакого динамического обновления не будет, обязательно нужно будет юзеров выгонять.
Всегда динамически применял изменения, не было никаких проблем.
дарю! как раз этим занимаюсь.
самое главное — можно переносить в Дополнительные реквизиты сведения и обратно любые реквизиты. Советую реквизиты переносить в дополнительные реквизиты и сведения. Только не забудь везде поправить код запросов. Использование доп.реквизитов выглядит примерно так:
(25) удаление фонтов и форматирования
заменить на пустую строку
удаление английского языка (1С в прошлом году наняла толмача по ходу)
Гарантировать не могу, главное, суть понятна, я просто их по частям удалял, немного мусора все равно останется, но это уже пофиг.
нотепад++ последний скачай, иначе вылетитгалки все сняты, кроме Регулярные выражения и Во всех подпапках — фильтры *.xml
Конвертация данных в 1С: правила обмена и обработки базы, параметры выгрузки, примеры
Эффективность работы 1С платформы во многом зависит от корректности настроек по обмену информационными потоками между базами. Так, различные приложения, как «Склад» или «Бухгалтерия» не могут полноценно обмениваться сведениями без внесения общих для их работы параметров. Во многих случаях допустимо использовать типовые решения, которые встроены в саму программу. Но весь массив задач они не решают. Поэтому в этом обзоре мы рассмотрим, что такое «1С: конвертация данных», правила обмена, тонкости в настройке в 1C, как можно перенести информацию, а также иные смежные аспекты.
Встроенные коррективы переноса сведений зачастую располагаются в разделе обновлений программы. Также можно открыть их через «Универсальную утилиту обмена XML». Но для решения всех задач в комплексе, этого, разумеется, будет недостаточно. Поэтому в любом случае придется пользоваться внешними источниками, с помощью которых получится наладить автоматический обмен сведениями, что удобно и в работе небольшого предприятия, и в деятельности огромного холдинга. А также прекрасно подходит подобная система для формирования общей отчетности в условиях компаний, которые одновременно занимаются и производством продукции, и его реализацией.
Конвертация базы данных 1С 8.3
Для настройки сопряжения совершенно разных конфигураций, обладающих минимальным набором смежных факторов, встроенными решениями обойтись попросту невозможно. Все же придется обращаться к сторонним приложениям, которые сумеют создать общие правила следования для различных программ. Можно сказать, что тогда эти утилиты начнут работать словно на одном движке, хоть они изначально и были написаны разным кодом.
Для реализации обозначенной задачи нам понадобится внешняя обработка. А конкретно – MD83Exp.epf. Это идеально для 8-ой версии нашей материнской программы. Для запуска этого особого правила переноса сведений необходимо выполнить ряд действий.
- Для начала нужно получить актуальную версию программы. И взять ее можно с сайта компании, совершающей технологическое сопровождение. То есть обычно – это та фирма, которая и ставила 1С на все компьютеры в предприятии. Правда, некоторые конторы считают, что передача подобного ПО не входит в их обязанности по ИТС. Это не так, обращаясь к хорошим организациям, вы всегда получите не только утилиту для переноса, но и их различные вариации по вашему выбору.
- Нам необходимо выгрузить структуру из одной точки в другую. Для этого наметим базу, которая будет выступать в качестве приемника, а также ту, что будет источником. Для выполнения открываем обе через «Предприятия», и настраиваем выгрузку нашей скачанной обработки. Полученный свод установок следует сохранить в файле с произвольным именем. И поскольку конвертация базы 1С у нас происходит в двух плоскостях, для источника и приемника, то и файлов у нас в конечном итоге получается тоже два.
- Далее нужно экспортировать схемы формата. Взять его можно как с памяти исходника, так и приемника. Искомый объект имеет расширение «xsd», перепутать его сложно. Открыть приложение необходимо уже не с помощью «Предприятия», а посредством «Конфигуратора». В результате мы найдем иерархическое дерево файловой системы. В общем разделе искомым будут XDTO-пакеты. Теперь нас интересует строчка – EnterpriseData. Нажав ее, мы можем заказать экспортирование информации. Не забудьте перед этим корректно указать место выгрузки.
- Возвращаемся к нашим файлам, которые мы сформировали вначале, когда загружали обработку. Теперь нужно их корректно сконфигурировать, загрузив туда скачанную структуру. Открываем их в «Конфигураторе», щелкаем по загрузке структуры. Указываем место, куда мы скачали «xsd» пакет. Ждем, пока все полностью загрузится. Заходим в раздел заново и проверяем, появились ли новые структуры у этих файлов.
- Таким же образом требуется провести загрузку и формата сведений. Это строчка расположилось по соседству. Повторяем манипуляции, которые нам нужно было выполнить со структурой.
- Теперь щелкаем по разделу конвертаций и создаем необходимые нам. В описанном случае понадобятся две. Даем им новое название, которое необходимо для решения рабочих задач.
- Чтобы у нас работала конфигурация конвертация данных, нам следует вписать новые правила. Создают их в том же разделе. Выбираем правило, присваиваем ему уникальный номер в «общих сведениях», а также отмечаем объект для применения (например, справка). Создаем необходимое количество правил для обоих файлов.
- Теперь нужно также настроить обработку. Выбираем меню создания, а дальше находим «правила». Они будут заполнены в автоматическом режиме, координируя две базы.
- Остается выгрузить данные и сохранить модуль менеджера.
Внешние обработки
Стоит пояснить, что это в принципе такое. Ведь на первоначальном этапе никаких утилит, которые позволяли сопрягать разные базы не существовало. Файлы по загрузке и выгрузке писались под каждый конкретный случай практически с нуля. И это было очень неудобно, а также трудоемко. Поэтому в составе дистрибутива компания начала выпускать различные внешние обработки, которые формировались на основе OLE. Но это только первое время. Впоследствии система развивалась как вглубь (технические доработки становились все более совершенными), так и вширь (появлялись новые варианты обработок). Подключаться к базам становилось все легче, большая часть утилит делала это в автоматическом режиме, легко заменяла переменные из двух источников, адаптировала язык, сопоставляла реквизиты, позволяла производить совместный поиск сразу по всем подключенным разделам.
Но даже такой прогресс был лишь половиной задачи. Во-первых, он отлично работал только на версии 7.7, не решал всех запросов 8.3. А во-вторых, все же не обладал полным функционалом, не позволял подключить источник к приемнику так, чтобы у них возникало общее и бесшовное информационное поле. Поэтому, если говорить про «1С: конвертацию данных», обработки, – это не панацея.
Пример переноса доработок конфигурации в расширение
Доброго времени суток, уважаемые коллеги! В этой статье приведен реальный пример реализации переноса изменений конфигурации Бит. Автотранспорт (3.0.80.36/3.0.4.55) в расширение конфигурации и установка конфигурации под «замок» с возможностью обновления. Также показано, как решить возникшие проблемы по ходу переноса. Давайте разберёмся!
Перечень основных шагов при переносе доработок конфигурации в расширение
- Сравнить основную конфигурацию с конфигурацией поставщика. Как это сделать посмотрите здесь.
- Посмотреть поддерживает ли режим совместимости возможность использования расширений? С версии платформы 8.3.11 появилась эта возможность. Нужно установить этот режим совместимости, если текущая версия ниже.
- Создать новое расширение конфигурации и установить префикс для этого расширения. Назначение: Адаптация.
- Добавить в расширение все структуры необходимые для хранения данных, которые отличаются от конфигурациии поставщика. Также для правильной работы расширения нужно будет заимствовать все необходимые объекты конфигурации. На этом шаге могут возникать разные ситуации, которые будут препятствовать переносу. Некоторые описаны начиная со следующего подзаголовка. На этом шаге расширение конфигурации уже должно быть готово. Как установить готовое расширение можно посмотреть на видео ниже.
- Создать обработку для переноса данных из старых структур, которые были в основной конфигурации, в новые структуры, которые были созданы при помощи расширений. Некоторое описание обработки можно посмотреть в подзаголовке, а скачать её можно по ссылке в конце статьи.
- Перенести данные.
- Удалить старые данные из конфигурации в правильном порядке. Это значит, что нужно сначала удалить объекты, в которых есть ссылки на другие объекты. Например, в документе есть реквизит с типом справочник Номенклатура. Сначала удалить этот реквизит, а затем и сам справочник Номенклатура.
- Вернуть изменённые объекты конфигурации обратно на замок, установив для объектов правило поддержки Объект поставщика не редактируется.
- Конфигурация — Поддержка — Настройка поддержки.
- Снова выполнить сравнение с конфигурацией поставщика. Кнопка «Сравнить, обьединить».
- Выставить в поле «Фильтр» значение «Нет фильтра».
- Найти нужный объект в дереве, нажать в правом углу кнопку «Изменить» и выбрать правило «Объект поставщика не редактируется». И подобным образом для всех объектов, у которых раньше была снята поддержка.
Копирование целого объекта из конфигурации в расширение
При копировании целого объекта из конфигурации в расширение может появится сообщение:
Это значит, что в расширение нужно заимствовать объекты из конфигурации, которые являются типами для данных, содержащихся в переносимом объекте. После заимствования нужно сохранить конфигурацию, чтобы заимствованные объекты и их стандартные реквизиты стали доступны.
Если нужно добавить новые реквизиты на форму, то сначала нужно заимствовать эту форму и открыть её, затем перейти в правую панель с реквизитами. Основной реквизит формы (Объект) будет выделен серым. Чтобы заимствовать объект нужно в контекстном меню выбрать «Добавить в расширение», после этого основной реквизит формы (Объект) будет выделен черным.
Чтобы были видны реквизиты документа в модуле объекта расширения, например Контрагент или ВидОперации нужно эти реквизиты заимствовать в расширение. Иначе будет выдаваться такая ошибка:
Если нужно на форме документа расширения добавить глобальную команду, то сначала нужно заимствовать эту команду в расширение и указать в ее свойствах «Тип параметра команды», как это показано в подзаголовке. Если, например, это документ СчетНаОплатуПокупателю, то параметром будет ДокументСсылка.СчетНаОплатуПокупателю соответственно. Если есть картинка к команде, то нужно заимствовать и её.
Настройка связей параметров выбора для отбора по владельцу
В существующем расширении реализована возможность отбора по владельцу для реквизита Заказ_ИсполнительДоговор документа бит_мат_ЗаказНаТехнику. Чтобы поле Владелец и другие стандартные реквизиты подчиненного справочника ДоговорыКонтрагентов (в данной конфигураци) отобразились в поле «Связи параметров выбора» нужно, заимствовать справочники Контрагенты и ДоговорыКонтрагентов в расширение. Потом отметить для справочника ДоговорыКонтрагентов свойство Владельцы как контролируемое.
После этого в заимствованном документе расширения (бит_мат_ЗаказНаТехнику) у нового реквизита (Заказ_ИсполнительДоговор) с типом ДоговорыКонтрагентов в форме «Связи параметров выбора» из выпадающего списка в левой панели можно выбрать «Отбор.Владелец» со значением отбора по владельцу (Заказ_Исполнитель).
Установка проверки заполнения реквизита в расширении
В документе (бит_мат_ЗаказНаТехнику) в табличной части (ТребованияКТехнике) есть реквизит Техника со свойством “Проверка заполнения”, значение которого установлено как “Выдавать ошибку”, а нужно для него в расширении проставить значение “Не проверять”. Хотя этот реквизит перенесен в расширение, его свойства недоступны для редактирования. К сожалению, далеко не все свойства реквизитов документа являются расширяемыми. Но существует программное изменение значений свойств в расширении.
Хотя и невозможно поменять свойство “Проверка заполнения” в расширении у заимствованного реквизита, но можно изменить обработку ОбработкаПроверкиЗаполнения() в модуле объекта через расширение, так чтобы реквизит, даже не заимствованный, не проверялся. Вот, что можно написать:
Перенос констант в расширение
В конфигурации были добавлены две константы (бит_Номенклатура и НоменклатурнаяГруппа). Нужно было их перенести в расширение, но к сожалению, объекты Константы в расширении можно создавать только на платформе 8.3.16 и выше. Данная конфигурация не поддерживала режим совместимости 8.3.16. Поэтому было решено создать регистр сведений (Заказ_Константы) и хранить значение констант там, а для получения значений констант нужно использовать функцию общего модуля ЗаказНаТехнику. Эта функция возвращает структуру со всеми значениями констант, сохраненных в ресурсах регистра. Вот код этой функции:
Добавление команды для формирования документа на основании
В конфигурации для документа РеализацияТоваровУслуг добавили возможность его ввода на основании документа бит_мат_ЗаказНаТехнику, а это значит, что стандартный реквизит ВводитсяНаОсновании документа РеализацияТоваровУслуг изменился. Чтобы сохранить возможность ввода документа РеализацияТоваровУслуг нужно:
- В расширении в разделе «Общие -> Общие команды«, создать новую команду.
- Дать название, например, «Заказ_РеализацияТоваровУслугСоздатьНаОсновании«.
- Группу у команды указать: «Командная панель формы.Создать на основании».
- Тип параметра команды: Ссылки тех документов, в которых появится новая строка в подменю ВводаНаОсновании. В данном случае «ДокументСсылка.битматЗаказНаТехнику«.
- Режим использования параметра: «Одиночный». Теперь в меню документа битматЗаказНаТехнику появится новая команда ввода на основании.
Теперь в меню документа битматЗаказНаТехнику появится новая команда ввода на основании. В модуле команды в процедуре ОбработкаКоманды написать код, который будет делать ввод нового документа на основании:
И еще, чтобы уже все работало в расширении после исполнения обработки заполнения Реализации добавить код с использованием аннотации ИзменениеИКонтроль (Вызвать вместо (с контролем)):
Ввод на основании нескольких документов
Чтобы можно было передавать сразу несколько документов в списке и создавать на их основе одну реализацию можно сделать следующее. Создать команду формы СоздатьНаОснованииРеализацияТоваровУслуг и расположить кнопку этой команды на форме списка в группе ГруппаГлобальныеКоманды и скрыть видимость этой кнопки. В списке документа в обработчике события ПриСозданииНаСервере переопределить команду, чтобы она появилась в ранее сформированной группе «Командная панель формы. Создать на основании»:
Для контекстного меню сделаем почти тоже самое. Создадим кнопку на форме списка СписокКонтекстноеМенюСоздатьНаОснованииРеализацияТоваровУслуг и присвоем ей, ранее созданную команду СоздатьНаОснованииРеализацияТоваровУслуг. Последняя процедура СоздатьНаОсновании является действием команды СоздатьНаОснованииРеализацияТоваровУслуг. Из нее передается массив документов, выделенных в форме списка, который нужно правильно обработать при заполнении документа РеализацияТоваровУслуг.
Как это будет сделано зависит от задачи, которую поставит заказчик. Может быть он захочет, чтобы из нескольких документов списка создавался один документ РеализацияТоваровУслуг, а может захочет, чтобы формировалось столько же документов РеализацияТоваровУслуг, сколько было выделено в списке. Любая постановка задачи от заказчика ложится на плечи разработчика. В данном, конкретном случае, нужно было сделать только для одного документа, все выше это как пример для тех, кому нужно реализовать с несколькими документами.
Описание обработки переноса данных
Обработка переносит данные из старых структур, которые были в основной конфигурации, в новые структуры, которые были созданы при помощи расширений. Её следует запускать, только после того, как будут добавлены все данные в расширение или когда уже готовое расширение будет добавлено в конфигурацию. Каждый разработчик создаёт такую обработку и под те структуры данных, которые создал в расширении. Для данного расширения создана своя обработка, которую можно скачать по ссылке.
Если говорить об обработке для данного расширения, то ещё с помощью этой обработки были устранены проблемы, связанные с дублированием данных в регистрах сведений ДвоичныеДанныеФайлов и ФайлыВРабочемКаталоге. Дело в том, что разработчик, изменил определяемый тип ПрисоединенныйФайл, добавив к нему новый тип СправочникСсылка.битматЗаказНаТехникуПрисоединенныеФайлы. Если просто изменить определяемый тип, убрав оттуда лишний тип и попытаться сохранить конфигурацию базы данных, то это не получится, так как возникнет такая ошибка:
Записи регистра сведений стали не уникальными: ДвоичныеДанныеФайлов
ДвоичныеДанныеФайлов. Имеются записи с одинаковыми измерениями
Дело в том, что у этих двух регистров измерение Файл имеет определяемый тип ПрисоединенныйФайл. Когда происходит удаление одного из типов в определяемом типе ПрисоединенныйФайл, то некоторые записи в этих регистрах становятся дублирующими, так как раньше, до удаления типа, в измерении Файл присутствовали элементы справочника бит_мат_ЗаказНаТехникуПрисоединенныеФайлы, а теперь там появились значения Null. В обработке реализован механизм, который устраняет эту проблему.
К сожалению, на момент написания статьи, система 1С:Предприятие не поддерживает ОпределяемыйТип. Только начиная с версии «1С:Предприятие 8.3.20», расширения будут поддерживать изменение определяемых типов.
Кроме того, в документе бит_мат_ЗаказНаТехнику в реквизите ОтветственноеЛицо был изменён тип. Раньше был СправочникСсылка.ФизическиеЛица, а стал СправочникСсылка.Пользователи. Поэтому в расширение был добавлен новый реквизит Заказ_ОтветственноеЛицо. Чтобы перенести данные в новый реквизит в обработке был сформирован определенный механизм.
Обработку нужно запускать дважды. Первый раз после установки и сохранения новых структур данных расширения, а второй раз после удаления старых данных из конфигурации и установки ее на «замок».
Добавление дополнительных отчетов в расширение
Для получения сводной информации о движениях в новом регистре накопления бит_ВзаиморасчетыСКонтрагентом были созданы два отчета. Чтобы перенести эти отчеты нужно было сначала сохранить их в расширение, потом менять запрос СКД. Если так не сделать, а изменять их как внешние отчеты, то при открытии схемы компоновки данных будет выдаваться ошибка о невозможности найти некоторые данные. Находясь в расширении отчет видит структуры данных, как конфигурации, так и расширения. Какую информацию показывают эти два отчета можно посмотреть на видео ниже.
Демонстрация добавления и удаления расширения 1С
Демонстрация доработок, перенесенных в расширение
Конечно, здесь опубликовано не все, что есть в этом расширении конфигурации Бит.Автотранспорт для управления взаимоотношениями с контрагентами. Но вы можете увидеть, да и опробовать само это расширение, если скачаете его по этой ссылке.