Список измененных объектов из "Отчета о сравнении конфигураций"
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Простенькая программа конвертирующая типовой отчет о сравнении конфигураций в "плоскую" структуру. На один объект приходится одна строка, а изменения вниз по иерархии представляются разделенными точками с запятыми (CSV).
Принцип работы:
1. Запускаем программу
2. Выбираем в открывшимся диалоге исходный файл отчета "Отчет о сравнении конфигураций" выгруженный в текстовый документ.
3. Выбираем в открывшимся диалоге файл, в который требуется сохранить сконвертированный отчет.
Исходный код (Python 3):
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename(filetypes=[("text", "*.txt")])
f = open(file_path, 'r', encoding='utf-8')
text = ''
current_line = ''
current_column_number = 0
for line in f:
column_number = line.count('\t') - 1
if column_number < 1:
continue
elif column_number == 1:
if current_line.find('^') == -1 or current_column_number > 3:
text = text + ('' if text == '' else '\n') + current_line
current_column_number = column_number
current_line = ''
if current_column_number != column_number:
current_column_number = column_number
current_line = current_line + "; "
else:
current_line = current_line + " "
current_line += line.replace('\n', '').strip()
f.close()
text = "***- Объект изменен\n"\
"-->- Объект присутствует только в основной конфигурации\n"\
"<--- Объект присутствует только в конфигурации поставщика\n"\
"^- Порядок объекта изменен\n\n"\
+ text
file_path = filedialog.asksaveasfilename(filetypes=[("text", "*.txt")])
with open(file_path, "w", encoding='utf-8') as text_file:
print(text, file=text_file)
Вступайте в нашу телеграмм-группу Инфостарт