Создание стартовой базы
Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом:
-
Все объекты «Новой базы» должны совпадать по уникальным идентификаторам ( Guid ) с «Исходной базой»
-
Все настройки работы в «Новой базе», включая настройки учетной политики организации, полностью повторяют настройки «Исходной базы».
-
Заполнение данными должно быть достаточным для запуска «Новой базы» в режиме «1С:Предприятие» без синтаксических ошибок и без необходимости выполнения процедур обновления.
В чем смысл?
У меня был смысл создать базу витрину для налогового мониторинга, чтобы далее в «Новую базу» из «Исходной базы» подкачали остатки и другие урезанные данные для налоговиков.
Сама ситуация похожа на создание начального образа в случае РИБ, но эта первая идея придумать РИБ на ровном месте и создать из него узел, да чтобы ещё все правильно настроилось, я отбросил из-за сложности исполнения.
Вторая идея – взять «Исходную базу» и почистить из неё данные…. Ну при размере в 100 Гб это прям нет-нет. У меня нет столько недель ждать, пока все почиститься.
Третья идея – перенести из «Исходной базы» нужные данные с помощью обще известной обработки ВыгрузкаЗагрузкаДанныхXML.epf натолкнулась на 2 неприятных препятствия:
-
Конфа «Исходной базы» была незнакома, была значительно переписана и содержала несколько встроенных нетиповых подсистем – вся эта каша в итоге приводила к тому, что простое открытие базы из пустой конфы не стартовало, вызывая кучу синтаксических ошибок, с которыми надо было бороться заплатками, игнорируя риск потерять что-нибудь важное из стартовых фундаментальных данных «Новой базы». С горем пополам эта махина запускалась, но далее вызывала нелепые ошибки в простых случая, когда требовалось что-то открыть или создать – просто кошки скреблись в душе от этого.
-
Второй момент, все знают, что при разворачивании пустой базы и конфигурации происходит начальное заполнение и создание новых базовых объектов, т.к. : валюты, банки, классификаторы ед. измерения, другие классификаторы, предопределенные значения, типа плана счетов и субконто и много других служебных данных. Это начальное заполнение вело к нарушению условия задачи о совпадении всех объектов «Новой базы» по Уникальному идентификатору (Guid) с «Исходной базой». И порождало дубли, с которыми пришлось бы в дальнейшем работать, что тоже не быстро.
Потребовалось осознать очевидное, что «Новую базу» нужно заполнить ещё до первого открытия 1С:Предприятия.
Обработка ВыгрузкаЗагрузкаДанныхXML.epf тут не очень заходила, т.к. обменивалась через файл XML и требовала открытия «Новой базы» для загрузки этого файла, от открытия которой я как раз хотел уйти из-за вышеописанных проблем.
Мне требовался режим COM для ВыгрузкаЗагрузкаДанныхXML.epf и фильтры выгрузки.
Поиск по Инфостарт не предлагал готового решения для скачивания. Но в итоге удалось собрать решение:
Нашёл уже не помню, в какой публикации обработку ВыгрузкаЗагрузкаДанныхXML82_COM.epf для платформы 8.2 для обычных форм, которая имела нужные возможности:
-
фильтры выгрузки (это стандартная опция этой версии обработки для обычных форм) и
-
имела возможность передачи данных межу базами по COM при условии встройки самой обработки в Базу-приемник, что было необходимо на время соединения для вызова специальных методов на стороне Базы-приемника по команде Базы-источника.
Тут было пару проблем:
-
что «Исходная база» работала в Управляемом интерфейсе, а обработка была на обычных формах
-
обработка предназначалась для платформ 8.1 и 8.2, но не работала для 8.3
-
встраивать обработку в конфигурацию «Новой базы» через хранилище было возможно, но немного затруднительно согласовывать.
Эти моменты решились на лайте:
-
Как отрыть обработку на Обычных формах в базе с Управляемым интерфейсом?
В «Исходной базе» создаем пользователя «АдминистраторОП» (сокращение от Администратор обычное приложение) с ролями: Полные права и Интерактивное открытие внешних обработок. У пользователя обязательно указываем Режим запуска = «Обычное приложение». Заходим под ним в «Исходную базу» (окно ввода пароля открывается 2 раза, в случае старта базы с Управляемым интерфейсом под Обычным приложением)
Рис.1 Создание пользователя АдминистраторОП в «Исходная база»
Рис.2 Открытие «Исходная база» в режиме «Обычное приложение» видно характерное старое меню
-
Как в обработку добавить режим работы для платформы 8.3?
Открываем обработку в конфигураторе, в форме обработки правой кнопкой мыши на центральной области меняем закладку на «Выгрузка в ИБ приемник». В поле Платформа в список выбора добавляем элемент для платформа «8.3».
Рис. 3 Смена закладки
Рис. 4 Добавление платформы 8.3 в список выбора
-
Как добавить обработку в «Новую базу» не встраивая в саму конфигурацию?
Конечно через расширение. Открываем «Новую базу» в конфигураторе, добавляем расширение и встраиваем в него обработку. Обновляем «Новую базу» из конфигуратора, конечно же, не открывая саму базу в режиме 1С:Предприятие, т.е. через команду меню Конфигурация – Обновить конфигурацию базы данных.
Рис. 5 Расширение с обработкой в «новой базе»
Рис. 6 Обновление расширения в «Новой базе»
Почти все готово.
Для вызова COM подключения в конфигураторе «Новой базы» создаем нового пользователя для простоты я его назвал также как пользователя в «Исходной базе», а именно «АдминистраторОП» с набором ролей {Полные права, Администратор системы, Интерактивное открытие внешних обработок} без флага «Защита от опасных действий».
Рис. 7 Создание пользователя в конфигураторе «Новой базы»
Сам перенос данных по шагам:
-
В «Исходной базе» запускаем сеанс под пользователем «АдминистраторОП»
-
Открываем обработку «Выгрузка и загрузка данных COM-XML» через меню – Файл – Открыть.
-
Указываем настройками обмена COM с «Новой базой» {указываем адрес базы на сервере 1С, подключение под пользователем «АдминистраторОП» и паролем}.
Рис. 8 Обработка обмена открытая в «Исходной базе»
-
Отключаем передачу всех объектов по ссылке, сняв флажки в колонке «При необходимости»
-
Для обмена включаем все Константы, регистры сведений Учетной политики, регистр сведений Версии подсистем, дополнительные регистры настроек характеризующие вашу базу. Справочники валют, Классификаторов единиц измерения, и других классификаторов поставить тянуть по ссылке, установив флажки в колонке «При необходимости»
- перегружаем эти данные в «Новую базу» по кнопке [Выгрузить данные].
После переноса, можно первый раз открыть «Новую базу» в режиме 1С:Предприятие.
Мне пришлось сделать пару итераций, чтобы выяснить полный список объектов, которые нужно сразу передать (типа рег.сведений Версии подсистем, или спраочник "Ключевые операции"). Вычислял я эти объекты открывая Журнал регистрации в «Новой базе» и смотря те объекты, которые создавались при открытии сеанса. Перед повтором итерации я восстанавливал «Новую базу» из её заранее сохраненного архива до переноса, включал в перенос вычисленный объект и переносил по новой. Пока при открытии «Новой базы» перестали создавать объекты. Все это нужно чтобы соблюсти условия по совпадению Уникальных идентификаторов по Guid.
Всё было бы хорошо, если бы я частями не забыл про гадские предопределенные значения… Планы счетов субконто и некоторые другие предопределенные значения создались все таки с Guid «Новой базы», а не «Исходной базы». Их пришлось починить постобработками.
Как починить предопределенные значения в «Новой базе», исправив их уникальные идентификаторы как у «Исходной базы»?
-
Надо убрать признак предопределение у предопределенных элементов в «Новой базе» и пометить их на удаление и удалить.
-
Перегрузить по COM из «Исходной базы» в «Новую базу» эти объекты той же обработкой обмена. Тем самым в «Новой базе» появятся предопределенные элементы с Guid как в «Исходной базе»
По планам счетов есть момент что надо виды субконто сначала почистить, пример кода в листинге ниже. По всем остальным типам код идентичный (убираем строку Об.ВидыСубконто.Очистить(); и в самом запросе тип объекта меняем на нужный справочник или ПВХ, для примера по Видам субконто еще ниже пример)
&НаСервере
Процедура Команда1НаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Хозрасчетный.Ссылка КАК Ссылка
|ИЗ
| ПланСчетов.Хозрасчетный КАК Хозрасчетный";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Об = Выборка.Ссылка.ПолучитьОбъект();
Об.ИмяПредопределенныхДанных = Неопределено;
Об.ВидыСубконто.Очистить();
Об.ПометкаУдаления = Истина;
Об.ОбменДанными.Загрузка = Истина;
Об.Записать();
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура Команда1НаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВидыСубконтоХозрасчетные.Ссылка КАК Ссылка
|ИЗ
| ПланВидовХарактеристик.ВидыСубконтоХозрасчетные КАК ВидыСубконтоХозрасчетные";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Об = Выборка.Ссылка.ПолучитьОбъект();
Об.ИмяПредопределенныхДанных = Неопределено;
Об.ПометкаУдаления = Истина;
Об.ОбменДанными.Загрузка = Истина;
Об.Записать();
КонецЦикла;
КонецПроцедуры
Если убрать подготовку кухни, то Стартовая база менее чем в течение 1 часа создается, а из знаний нужно только понимание 1С.
Кажется все…. если, что пишите.
Интерактивная справка [Alt+I] (подключаемое расширение) | Дополнительная справка, подключаемая к базе 1С. Содержит дерево разделов и статьи. Позволяет создавать статьи с картинками, прикреплять к ним файлы и видео, а также связывать статьи с объектами 1С (документам, справочникам, отчетам). Вызывается на динамически создаваемую кнопку панели либо быстрой комбинацией клавиш Alt+I. |
Защита объектов от изменения обменом | Расширение позволяет пользователю заблокировать объект 1С (документ, справочник) от изменения последующими загрузками данных или обменами. |
Доп. панель Alt+Z | Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение. |
Создание стартовой базы | Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом уникальные идентификаторы объектов должны совпадать. |
Групповое добавление и удаление ролей из списка профилей | Подключаемая обработка. Помогает при конструировании профилей доступа пользователей (настройке прав пользователей), экономит время на добавлении/удалении одной и той же роли сразу в нескольких профилях. |
Интерактивная справка по объектам 1С (автономное расширение) | База знаний, подключаемая к объектам основной базы. Ведётся интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями. |
Значения по умолчанию для пользователей (Расширение) | При заполнении документов и справочников пользователи часто сталкиваются с необходимостью ввода одних и тех же реквизитов. Заполнение в документах некоторых из них, таких как: Организация, Склад и т.п. - выполняется реализованным в 1С механизмом подстановки значения из последних 3-5 введенных документов. Если же вы хотите заполнять все реквизиты шапки (и даты, и флажки, и другие поля, включая дополнительные реквизиты), то вам поможет данный механизм. |
Контекст любого объекта конструкцией #Если Фамилия Тогда | Делаем инициализацию переменной в "своей" инструкции препроцессора, для получения контекстной подсказки объекта через точку. В дальнейшем в компилированном коде сама инициализация игнорируется, т.к. "своя" инструкция препроцессора НИКОГДА не выполняется. |
Отключение Монитора ИТС и Проверки наличия обновления (расширение) | Некоторые интернет-сервисы базы 1С у пользователей вызывают замедления работы и клиенту не нужны. Их можно отключить через расширения. |
Памятка работ по проекту 1С | Схема работ по проекту внедрения 1С освежает в голове и визуализирует общую картину мероприятий. Будет полезно как для Заказчика так и для Исполнителя при подготовке проекта и проведении совещаний по ходу проекта. |
Использование Стека вызовов в качестве условия оператора Если [...] Тогда | Делюсь интересным приёмом, позволяющим использовать данные стека исполнения кода 1С в качестве условия, накладываемого на выполнение кода. |
Уведомление пользователей об изменениях в объектах (расширение) | Позволяет без доработок настроить уведомления пользователям об изменениях объектов и их реквизитов. Уведомления отправляются в виде задач по проверке объектов с ссылками на объекты. |
Права доступа к объектам с гибкими отборами (расширение) | Возможность без доработок конкретизировать пользователям права Просмотра и Изменения объектов базы 1С, установив ограничения с помощью отборов системы компоновки данных. |
Памятка работ по задаче 1С | Памятка выполняемых работ по решению длительных задач по 1С |
Применение программистом таблицы рисков для оценки технического задания | Я как программист часто получаю технические задания, по которым от меня хотят услышать оценку. Привожу описание метода оценки задания, заимствованный из проектной технологии, по которому я оцениваю тех. задания |
Добрый великан | Руководители проектов определяют наше настоящее, каким оно будет?! Ответ прост - таким, каким и сам РП. |
Настройка ограничений входа пользователей в базу (расширение) | Настраиваем для пользователей 1С разрешенное количество открытых сеансов к текущей базе данных 1С в привязке к компьютерам. (У пользователя не будет возможности превысить допустимое количество сеансов или зайти с чужого компьютера). |
Переход с партий и производства версии 2.1 на режимы 2.2 в 1С:ERP в середине года | В данной статье рассказано о практическом опыте ВЦ «Раздолье» в переводе работы клиентов в «1С:ERP Управление предприятием» на новые режимы: использование производства 2.2 и партионный учет версии 2.2 (далее режимы 2.2) после начала года, доработки изменения. |
БП 3.0, Закрытие месяца, Отключение проверок операций прошлых периодов | Расширение конфигурации, отключающее ошибки прошлых периодов, которые блокируют закрытие текущего месяца. Например, "Нарушена последовательность регламентных операций" и т.д. |
Проводим по БУ "на лету" | В базе ERP и КА есть форма тестировщика, которая автоматически получает из конфигурации полные тексты запросов формирования бухгалтерских проводок выбранного документа, даёт возможность модифицировать запрос и сразу проверить результат. |
Административная панель #расширение объекта | Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками. |
Универсальный обмен данными XML (с гибкими отборами и сохранением вариантов настроек) |
Обработка предназначена для загрузки и выгрузки данных по правилам обмена в любых конфигурациях, реализованных на платформе 1С:Предприятие 8.3. Преимуществом перед типовой обработкой является добавленный функционал: #1. Установка произвольных фильтров на выгружаемые объекты при помощи механизма системы компоновки данных #2. Сохранение различных вариантов настроек (сохраняются правила обмена, фильтры выгрузки, параметры, настройки обработки) - что позволяет гибко настроить в базе-источнике фильтры для выгрузки объектов по различным правилам обмена для различных баз-приемников, сохранить выполненные настройки и в будущем уже пользоваться этими вариантами настроек. |
Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты. |
|
Подключаемый отчет на системе компоновки данных по типам объектов 1С показывает: 1) Совокупности таблиц SQL для хранения объекта 1С и их предназначение; 2) Число объектов данного типа; 3) Размеры хранения данных и индексов в MB (мегабайтах); 4) Сравнение данных двух баз |
|
Запуск 1С под любым пользователем (без необходимости указания пароля) |
Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен). |
Если пользователю не хватает прав на объект, то на практике в 90 % случаев, недостающую роль можно найти через типовой регистр сведений Права ролей. Также с помощью дополнительного отчета или небольшого расширения можно ускорить описанный процесс. |
|
Онлайн диаграмма доступных лицензий 1С и показателей ресурсов сервера 1С в различных измерениях и отборах. |
|
Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий |
|
Структура подчиненности с хронологией документов и кнопками проведения и удаления |
Часто не хватает визуализации хронологии документов в структуре подчиненности и кнопок проведения. Это расширение конфигурации, с функционалом структуры подчиненности документов, отображающее хронологическую последовательность документов во времени и дающее доступ к проведению, отмене проведения, пометке на удаление документов непосредственно в форме подчиненности. |
Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. |
|
Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3 |
|
Внешняя обработка (работает в обычном и управляемом интерфейсе). Пригодиться для работы с узлами распределенных баз данных: 1) Снимает замки блокировки конфигурации подчиненного узла или возвращает их. 2) Дает возможность подключить архив рабочей базы как подчиненный узел без создания образа. 3) Дает возможно синхронизировать конфигурации узлов вручную, если например есть ошибки обмена или размер конфигурации велик для передачи через сообщения обмена. Ситуации описаны в полном описании. Проверялось на платформе 8.1, 8.2, 8.3, для 1С:УПП, 1С:Розница, 1С:Бухгалтерия 1.6, 2.0, 3.0, 1С:ERP |
|
Обработка на управляемых формах для работы с календарями google, событиями календарей и контактами. |
|
Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет... |
|
Тест серверного оборудования на допустимое количество пользователей: как это использовать? |
Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей. |
Перед началом проекта требуется определить параметры серверного и клиентского оборудования, необходимые для работы внедряемой программы 1С:Предприятие, и учесть будущую нагрузку, которая ляжет на систему в реальной рабочей обстановке. Мощность оборудования должна быть достаточной для нормальной работы пользователей. Но как подобрать сервер простым способом? |
|
На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением. Часто при моделировании примеров бизнес-процессов, на запуске в эксплуатацию или закрытии требуется несколько раз прогнать ситуацию с разными настройками, а для этого изменить, удалить ранее введенную цепочку документов. Дается все это с трудом. Ты уверен, что не навредишь своими действиями системе, но документы цепляют друг друга и ругаются контролями остатков, не разрешая тебе менять их в произвольном порядке. Есть несколько удобных опций для облегчения внесения изменений. |
|
Огорчает один момент в типовых решениях, когда проводится документ, ругаясь на нехватку остатков, система не сообщает, по какому именно регистру проблема. Дополнив сообщения контроля названием регистра, можно уменьшить время расследования проблемы (исключив из процесса необходимость запуска программистом отладки в конфигураторе для выявления имени проблемного регистра). |
|
Для уведомления пользователей программных продуктов 1С о разных событиях, в них включена подсистема «Новостной центр». Это довольно удобная штука, т.к. новостные ленты сообщают о выходе обновлений, о новостях и событиях в сфере учёта. Но можно увеличить пользу от новостной подсистемы используя её локально в рамках 1С базы. Например, внутренняя служба техподдержки или внедряющая компания может через новостную ленту оповещать пользователей информационной базы об изменениях в программе, совещаниях, проведении тестирований, заполнения нужных документов или сдача отчетов к определенной дате и т.п. |
|
Пример технического задания для практического понимания основных разделов. |
|
Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании |
Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами