Уверенное обновление
Администрирование - Администрирование данных 1С
Введение
Допустим, мы готовим обновление конфигурации. Объекты на полной поддержке- обновляются автоматически, объекты на поддержке с возможностью изменения– необходимо обрабатывать вручную. Перед тем, как вносить изменения в рабочую базу, проведем проверку. Сравним подготовленную (тестовую) конфигурацию с конфигурацией поставщика.
Описание проблемы
Запускаем сравнение конфигураций, видим дерево метаданных. Чтобы найти отличие (в реквизитах или параметрах) между тестовой и эталонной формами объекта, снятого с поддержки - нужно пару раз щелкнуть мышью, затем открыть Отчет о сравнении объектов и там искать разницу. Если объектов для проверки много - скорби умножаются.
Решение проблемы
Как находить ВСЕ различия в один момент ? Из окна сравнения конфигурации откроем контекстное меню, сформируем файл в текстовом формате ОтчетОСравнении.txt для всей конфигурации и сохраним его в отдельный каталог.
В моем случае размер файла 90 Мб. Для анализа файла будем использовать скрипты Bash. Скачать оболочку с сайта https://git-scm.com/download/win. Немного непривычно, но цель оправдывает средства. Для использования Bash нужно с помощью Notepad++ для файла ОтчетОСравнении.txt установить кодировку UTF8.
То же можно сделать командой Bash, имя файла меняется
iconv -f UCS-2LE -t UTF-8 ОтчетОСравнении00.txt > ОтчетОСравнении.txt
Пример 1
Скрипт обработки
cat ОтчетОСравнении.txt \
| egrep '(\*\*\*.*Форма\.)|(<--Реквизит\W)|(<--Колонка реквизита\W)|(<--Параметр\W)' \
| awk -vORS= '{if ($0~"Форма\.") { print "\n"$0;} \
else { print $0; } }' \
| egrep '(<--Реквизит)|(<--Колонка реквизита)|(<--Параметр)' \
| sed "s/- \*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" > Result.txt
Небольшие пояснения:
Команда cat здесь открывает файл ОтчетОСравнении.txt
Символ "|" в начале строки означает передачу данных от предыдущего оператора к следующему. Внутри скобок и кавычек этот символ означает «ИЛИ».
Символ "\" в конце строки означает, что скрипт продолжается.
Символ «;»в конце строки означает, что закончилась одна команда пакета и начинается следующая.
Символы «\*» «\.» «\n» означают соответственно «*» «.» перевод строки.
Команда egrep здесь оставляет только те строки, которые соответствуют фильтру.
Команда awk здесь убирает переход строки, поднимает строку вверх.
Команда sed здесь вставляет перевод строки перед символами «***» и «- <--», удаляет лишние пробелы.
Если вместо символов "- <--" использовать "- -->", будут показаны удаленные.
Результат работы скрипта записываем в файл Result.txt
Если полученный результат пустой - скорее всего, кодировка файла ОтчетОСравнении.txt не соответствует UTF8.
Пример 2
Если объект (реквизит) на поддержке используется в коде, не находящемся на поддержке, то при изменении имени объекта (реквизита), такой код нужно изменять вручную. Пример кода - модуль, элемент формы - текст запроса динамического списка. Кроме этого, может измениться имя предопределенного элемента.
Скрипт обработки
cat ОтчетОСравнении.txt \
| egrep '(- \*\*\*(Перечисление|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов)\.)|(Имя...Различаются значения)' \
| awk -vORS= '{if ($0~"\*\*\*(Перечисление|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов)\.") { print "\n"$0;} \
else { print $0; } }' \
| egrep 'Имя...Различаются значения' \
| sed "s/- \*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" > Result.txt
Пример 3
Поставщик добавил новые движения для документа:
Скрипт обработки
cat ОтчетОСравнении.txt \
| egrep '(\*\*\*Документ\.)|(\*\*\*Движения)|(- <--Регистр)' \
| awk -vORS= '{if ($0~"\*\*\*Документ\.") { print "\n"$0;} \
else { print $0; } }' \
| egrep '\*\*\*Движения.*<--Регистр' \
| sed "s/- \*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" > Result.txt
Соберем все скрипты в один супер-пупер мега скрипт.
Echo ".........................................................................................." > Result.txt; \
cat ОтчетОСравнении.txt \
| egrep '(\*\*\*.*Форма\.)|(<--Реквизит\W)|(<--Колонка реквизита\W)|(<--Параметр\W)' \
| awk -vORS= '{if ($0~"Форма\.") { print "\n"$0;} \
else { print $0; } }' \
| egrep '(<--Реквизит)|(<--Колонка реквизита)|(<--Параметр)' \
| sed "s/- \*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" >> Result.txt; \
Echo ".........................................................................................." >> Result.txt; \
cat ОтчетОСравнении.txt \
| egrep '(- \*\*\*(Перечисление|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов)\.)|(Имя...Различаются значения)' \
| awk -vORS= '{if ($0~"\*\*\*(Перечисление|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов)\.") { print "\n"$0;} \
else { print $0; } }' \
| egrep 'Имя...Различаются значения' \
| sed "s/- \*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" >> Result.txt; \
Echo ".........................................................................................." >> Result.txt; \
cat ОтчетОСравнении.txt \
| egrep '(\*\*\*Документ\.)|(\*\*\*Движения)|(- <--Регистр)' \
| awk -vORS= '{if ($0~"\*\*\*Документ\.") { print "\n"$0;} \
else { print $0; } }' \
| egrep '\*\*\*Движения.*<--Регистр' \
| sed "s/- \*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" >> Result.txt
Какая красота получилась! Мир спасен?
Пример 4
Если поле базы данных содержит данные составного типа, а при обновлении составной тип становится меньше, то ссылки неподходящего типа очищаются, возможна потеря данных. Для анализа "потерянных" типов нужно использовать сравнение конфигурации рабочей базы и конфигурации обновления. Сформируем файл ОтчетОСравнении.txt для нового сравнения, запишем в другой каталог и сменим кодировку.
Информацию об измененных типах можно увидеть при сравнении конфигураций.
Скрипт обработки
cat ОтчетОСравнении.txt \
| egrep '(\*\*\*)|(-->)|(<--)' \
| awk -vORS= '{ if ($0~"(ПланВидовХарактеристик|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов|Реквизит|Измерение|Ресурс|ОпределяемыйТип)\.") \
{ print "\n"$0;} else { print $0; } }' \
| egrep '(\*\*\*)Тип(\W)*(- -->)' \
| sed "s/\*\*\*/\n- \*\*\*/g; s/- <--/\n- <--/g; s/[ \t]//g" > Result.txt
Пример 5.
После установки обновления от поставщика, строки кода наших сотрудников не должны изменяться. Поэтому в файле ОтчетОСравнении конфигурации рабочей базы и конфигурации обновления не должно быть строк, помеченных префиксом. Не забудьте изменить НАШПРЕФИКС на префикс, который используют ваши разработчики.
cat ОтчетОСравнении.txt \
| egrep '(Модуль|Перечисление|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов|НАШПРЕФИКС)' \
| awk -vORS= '{if ($0~"\*\*\*(ОбщийМодуль|Перечисление|Справочник|Документ|РегистрНакопления|РегистрСведений|Обработка|Отчет|ЖурналДокументов)") \
{ print "\n"$0;} else { print $0; } }' \
| egrep 'Модуль.*НАШПРЕФИКС' \
| sed "s/- Модуль/\n- Модуль/g; s/[ \t]//g" > Result.txt
Заключение
Надеюсь, этот небольшой опус поможет вам при проверке –сравнении конфигураций. Конечно, тема автоматического анализа результатов обновления еще не закрыта. Есть идеи анализировать изменение функций/процедур и еще много разных идей. Буду рад конструктивным предложениям.
Спасибо за внимание !
Специальные предложения
См. также
Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо
Семинар по регулярному менеджменту от Александра Фридмана для собственников, первых лиц и топов. Технология управленческого планирования, комплексного управления временем и другими ресурсами, выполнением поручений, делами, информацией, контактами (встречи-звонки-почта).
от 11000 до 29000 рублей
Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 10.09.2019 105
11.09.2019 25881 infostart 90
Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо
Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!
29700 руб.
За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С 91
28.05.2019 9339 ivanov660 5
1С:Предприятие через Интернет. 1С:Fresh Промо
Ведение бухгалтерского и налогового учет, сдача отчетности, управление бизнесом из любой точки мира. Привычные программы «1С» через Интернет без приобретения коробочных программ.
Практика перехода на Linux и Postgres в небольшой компании (10 пользователей) 100
22.04.2019 20937 starik-2005 158
Cashback 35% при покупке 1С лицензий на счет INFOSTART.RU с 27.11 по 04.12 Промо
Оформляете заказ на 1С лицензии или конфигурации. Получаете 35% от стоимости на счет в профиле INFOSTART.RU. Выбираете сервисы и продукты на сумму кэшбэка.
Скорость работы 1С: Предприятие с разными СУБД: MS SQL и с PostgreSQL 70
20.02.2019 17933 valentinko 168
Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.127.х, КА 2.4.10.х и ERP 2.4.10.х! Промо
Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.
29700 руб.
Перенос данных БП 2.0 => УТ 11 / КА 2 / ERP 2 (перенос остатков, документов и справочников из "1С:Бухгалтерия предприятия 8", ред. 2.0 в "1С:Управление торговлей 8", ред.11 / КА 2 / ERP 2). Обновлено до УТ 11.4.10.х, КА 2.4.10.х, ERP 2.4.10.х! Промо
Перенос позволяет загрузить в УТ 11 / КА 2 / ERP 2 документы за выбранный период, справочную информацию и остатки по счетам бух. учета. Переносятся остатки денежных средств, взаиморасчетов, остатки товаров и материалов на складах. Переносятся девятнадцать основных видов документов за выбранный период и вся нормативно-справочная информация. Есть фильтр по организации. Если нужно переносить что-то дополнительно, то обычно бесплатно дорабатываю правила (перед покупкой согласуйте необходимые доработки).
29700 руб.
Подборка программ для взаимодействия с ЕГАИС Промо
ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.
Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана 166
25.12.2018 23416 2 capitan 146
Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо
Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Предоставляем техподдержку по всем вопросам данного обмена. Можем подключиться к вам удаленно для разбора ситуаций. Оперативно обновляем при выходе новых релизов 1С. Бесплатные обновления в течение полугода.
19700 руб.
Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо
Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!
29700 руб.
1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо
СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.
[Шпаргалка] Несколько версий сервера 1С на одном сервере (компьютер) 110
14.05.2018 17252 rpgshnik 26
Программы для исполнения 488-ФЗ: Маркировка товаров Промо
1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.
Вакансия Автор новостных обзоров на тему 1С и бухучета, По совместительству Промо
Редакция Infostart.ru будет рада сотрудничеству с 1С-специалистом, умеющим и любящим излагать свои мысли в письменной форме. Если вы работали в IT-изданиях или имеете опыт ведения технологического блога/канала/группы, если сможете сделать обзор обработок из каталога infostart.ru/public/all/, то у вас большое преимущество.
Сервер администрирования кластера серверов 1C:Предприятия и deployka 119
04.04.2018 39582 Tavalik 33