Консоль сравнения данных (1С 8, 1С 7.7, SQL, CSV, TXT, DBF, XLS, DOC, XML, JSON, табличный документ) (версия 15.9.67)

15.10.24

Разработка - Инструментарий разработчика

Обработка Консоль сравнения данных (КСД) предназначена для сравнения данных, полученных из разных источников данных: информационных баз 1С 8, 1С 7.7, баз данных SQL, файлов формата CSV/TXT/DBF/XLS/DOC/XML, строки JSON, вручную заполненного табличного документа. Минимально необходимая версия платформы: 8.3.6.1977.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Консоль сравнения данных (1С 8, 1С 7.7, SQL, CSV, TXT, DBF, XLS, DOC, XML, JSON, табличный документ)
.epf 601,79Kb ver:15.9.67
80
80 Скачать (1 SM) Купить за 1 850 руб.

Сравнение можно производить между данными из следующих источников:

  •     текущая база 1С 8
  •     внешняя база 1С 8 (через COM)
  •     внешняя база 1С 7.7 (файловая, через COM)
  •     внешняя база данных SQL (MS, Postgre и др., для которых есть драйвер)
  •     файл формата CSV
  •     файл формата TXT
  •     файл формата DBF
  •     файл формата XLS
  •     файл формата XML
  •     строка JSON
  •     табличный документ на форме обработки

Данные сравниваются между собой по ключу (от одной до трех колонок), который определяется как первая колонка  (первые колонки) запроса для 1С/SQL или в соответствии с настройками для файлов и табличного документа. Результат сравнения можно выгрузить в CSV-файл, в т.ч. программно. Настройки консоли можно сохранять в файл и справочник ВС_ОперацияСравненияДанных (справочник должен содержать один элемент с именем Операция и типом Хранилище значения).

Порядок работы с обработкой КСД:

  1. Настройка источников А и Б: текст запроса 1С/SQL, параметры (кроме ДатаНачала и ДатаОкончания) для 1С, номера колонок для файлов и табличного документа, при необходимости дополнительной обработки данных перед сравнением для ключей и остальных реквизитов можно указать произвольный код, кроме того, для устранения дубликатов в файлах можно установить флаг "Сворачивать данные по ключу"
  2. Общие настройки: заполнение параметров ДатаНачала и ДатаОкончания (данные параметры общие для источников А и Б), число столбцов в ключе
  3. Выбор операции реляционной алгебры (левое соединение, разность и т.д.), которая будет использована для объединения результатов запросов (с помощью кнопок в верхней части формы)
  4. Настройка фильтрации строк на вкладках Условия вывода строк и/или Условия вывода строк: можно указать, какие условия должны или не должны выполняться для каждой результирующей строки, чтобы она была выведена

Буду благодарен, если напишете о найденном баге на sertakov [а] list.ru, в личку или в комментариях.

Данной обработкой, оперирующей, само собой, объектами 1С, не стоит сравнивать таблицы значений из сотен тысяч и более строк, для этого стоит поискать более производительный инструмент.

P.S. На основании данной обработки разработана конфигурация Сценарное сравнение данных (ССД), позволяющая в автоматическом режиме выполнять последовательность из операций сравнения данных с возможностью указания условий выполнения и автоматического изменения  анализируемого периода.

P.P.S. При возникновении вопросов пишите в комментах, в личку или на электропочту (данные есть в справке обработки).

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия для Беларуси, 2.1, релизы 2.1.54.6
  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.154.17

сравнение сравнить данных данные 7.7 8 SQL Server PostgreSQL сопоставление разные конфигурации CSV TXT DBF XLS DOC XML JSON

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171646    960    403    

924

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14230    108    46    

107

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    27229    96    48    

137

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    17245    43    15    

75

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11881    45    27    

67

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191140    1152    0    

920

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1110    2    0    

5

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    104109    244    100    

307
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alexzhegzdrin 15.02.17 16:28 Сейчас в теме
Неплохо бы увидеть возможность выбора драйвера, отличного от MS SQL
2. sertak 325 15.02.17 16:58 Сейчас в теме
(1) Версия 4.4.12: драйвер можно указать вручную, можно выбрать из списка (SQL Server, PostgreSQL).
3. sertak 325 16.02.17 23:11 Сейчас в теме
Версия 5.0.13:
добавлена возможность сравнения с файлами CSV/TXT/DBF/XLS.

Теперь можно сравнивать данные из любых двух источников:
- текущая база 1С 8;
- внешняя база 1С 8;
- база данных SQL Server;
- база данных PostgreSQL;
- другая база SQL через вручную указанный драйвер;
- файл формата CSV/TXT/DBF/XLS.
4. sertak 325 20.02.17 12:24 Сейчас в теме
Версия 6.1.15:
добавлена возможность использования составного ключа из двух колонок;
исправлена ошибка, из-за которой невозможно было извлечь УИД из ссылки из внешней базы 1С 8.
5. sertak 325 20.02.17 15:47 Сейчас в теме
Версия 6.1.16:
исправлена ошибка.
6. sertak 325 04.03.17 00:15 Сейчас в теме
Версия 7.0.17:
реализована возможность загрузки данных из табличного документа.

Версия 7.0.18:
исправлена ошибка.
7. sertak 325 12.03.17 19:27 Сейчас в теме
Версия 7.1.19:
увеличена длина и точность типа Число реквизитов.
8. zerdov 45 24.05.17 17:00 Сейчас в теме
Как внести значения параметра Период в запросе к ВТ регистра сведенийЦеныНоменклатурыСрезПоследних ?
Такое впечатление, что запрос работает с обычной таблицей ЦеныНоменклатуры. Выводит даты документов- регистраторов.
9. sertak 325 25.05.17 12:26 Сейчас в теме
10. sertak 325 25.05.17 12:32 Сейчас в теме
(8)
1)
 ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(ДАТАВРЕМЯ(2017, 1, 1), ) КАК ЦеныНоменклатурыСрезПоследних


2)
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаНачала, ) КАК ЦеныНоменклатурыСрезПоследних


а на вкладке консоли Общие настроки -> Основные нужно в левую границу периода внести нужную дату среза цен
11. zerdov 45 25.05.17 16:14 Сейчас в теме
(10)
ДАТАВРЕМЯ(2017, 05, 25)

Спасибо! Я по второму варианту строил запрос. Мое "впечатление" было ошибочным, периоды и должны были быть разными, главное что бы были последними ).
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Код КАК НоменклатураКод,
	ЦеныНоменклатурыСрезПоследних.Период КАК Период,
	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОкончания, ) КАК ЦеныНоменклатурыСрезПоследних
12. sertak 325 16.11.17 15:55 Сейчас в теме
Версия 7.1.20:
исправлена ошибка, из-за которой в некоторых случаях сравнение по составному ключу производилось некорректно.
13. sertak 325 17.11.17 22:24 Сейчас в теме
Версия 7.2.21:
реализована возможность использования параметров запроса при подключении к текущей базе 1С 8 (параметры ДатаНачала и ДатаОкончания берутся только с вкладки Общие настройки -> Основные даже в том случае, если одноименные есть на вкладке Параметры запроса);
исправлена ошибка, из-за которой в настройках не сохранялся номер первой строки файла.
14. sertak 325 20.02.18 11:56 Сейчас в теме
Версия 8.0.22:
реализована возможность загрузки данных из файлов формата XML;
исправлена ошибка, из-за которой в некоторых режимах некорректно определялся список обязательных к заполнению полей;
доработан вывод сообщений об ошибках заполнения реквизитов.
15. Erne100 287 26.03.18 11:23 Сейчас в теме
А параметров запроса Б нет? Хотя бы примитивный типов... для начала
Evg-Lylyk; sertak; +2 Ответить
17. sertak 325 26.03.18 14:52 Сейчас в теме
Вы имеете в виду ситуацию, когда Б - внешняя база 1С, видимо. Не реализовывал пока.
18. Erne100 287 26.03.18 15:59 Сейчас в теме
(17) Да именно это. А пока делаю так:
ГДЕ
	РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
	И РеализацияТоваровУслуг.Организация.ИНН = "32177162"
30. sertak 325 29.06.18 13:08 Сейчас в теме
(15) реализовано в версии 11.1.30.
Evg-Lylyk; +1 Ответить
16. пользователь 26.03.18 14:52
Сообщение было скрыто модератором.
...
19. m-rv 977 04.05.18 14:49 Сейчас в теме
Оч.крутая штука!
Как мысль для дальнейшего развития: нужен какой-то а-ля пользовательский режим, в котором не видны настройки подключений, запросы, но есть возможность редактировать режим "таблица". т.е. программист все настроил, сохранил настройки, потом пользователь просто открывает настройки, сравнивает и смотрит на результат.
20. sertak 325 04.05.18 15:51 Сейчас в теме
Спасибо, сам к ней неравнодушен ).
Сохранение/открытие настроек есть, пользователю достаточно сделать 2 действия: выбрать настройку и нажать кнопку сформировать, даже период будет сам пересчитываться, т.к. его можно задать в единицах времени относительно текущей даты. Напишите подробнее мысль, заинтересовали.
24. sertak 325 14.05.18 09:04 Сейчас в теме
21. sertak 325 05.05.18 07:25 Сейчас в теме
Версия 8.0.23:
исправлена ошибка, из-за которой при наличии пробелов в ключе могли не заполняться реквизиты.
22. sertak 325 08.05.18 11:47 Сейчас в теме
Версия 8.0.24:
исправен запрет на имя колонки выборки запроса: теперь колонку можно называть Количество.
23. sertak 325 14.05.18 09:04 Сейчас в теме
Версия 8.1.25:
добавлена возможность открытия формы в пользовательском режиме, где пользователь может только выбирать сохраненные настройки и производить сравнение, для включения режима достаточно установить флаг Пользовательский режим в программно созданную обработку либо передать этот флаг как параметр при открытии формы (ОткрытьФорму("Обработка.ВС_КонсольСравненияДанныхИзРазныхИсточников.Форма", Новый Структура("ПользовательскийРежим", Истина), ПараметрыВыполненияКоманды.Источник, Новый УникальныйИдентификатор)).
П.С. Спасибо Маркову Роману за идею.
25. sertak 325 23.05.18 11:40 Сейчас в теме
Версия 8.2.26:
добавлена возможность программного заполнения реквизитов с помощью произвольного кода при чтении данных из файлов (обращение к значениям реквизитов осуществлется по именам Р1...Р5, обращение к текущему - по имени РТек, например, для реквизита 3 может быть задан такой произвольный код: РТек = Р1 * Р2 * 1.2).
26. sertak 325 12.06.18 10:40 Сейчас в теме
Версия 9.0.27:
реализована возможность использования составного ключа из трех столбцов (используются первые три колонки каждой выборки для баз 1С и SQL и явно указанные номера колонок для файлов).
27. sertak 325 25.06.18 11:11 Сейчас в теме
Версия 10.0.28:
реализована возможность программного изменения столбцов ключа с помощью произвольного кода при чтении данных (обращение к исходным значениям столбцов ключа осуществляется по именам Ключ1, Ключ2, Ключ3, например, может быть задан такой произвольный код: КлючТек = Число(Лев(СокрЛП(КлючТек ), 5));
добавлены кнопки открытия в реквизитах с ключами и произвольным кодом;
исправлена ошибка, из-за которой при чтении XML-файла не заполнялся третий столбец составного ключа.
28. sertak 325 27.06.18 13:06 Сейчас в теме
Версия 11.0.29:
реализована возможность сворачивания данных, полученных из файлов или табличного документа, по ключу (для реквизитов применяется агрегатная функция Сумма).
29. sertak 325 29.06.18 13:08 Сейчас в теме
Версия 11.1.30:
реализована возможность установки параметров запроса примитивных типов данных для внешней базы 1С 8.
31. sertak 325 06.07.18 17:06 Сейчас в теме
Версия 11.2.31:
добавлены колонки Тип столбца 1-3 ключа.
32. sertak 325 10.07.18 11:58 Сейчас в теме
Версия 11.3.32:
реализована возможность выгрузки результата сравнения в файл формата CSV (на сервере).
33. sertak 325 25.04.19 11:17 Сейчас в теме
Версия 11.3.34:
доработан интерфейс (добавлены пояснения и др.).
34. starik-2005 3098 26.04.19 11:18 Сейчас в теме
Умеет работать по регламенту и данные в файл класть? Типа база 1, в которой остатки, база 2, в которой остатки, регламент обмена, регламент сравнения после обмена (или до, и в качестве параметра для обмена результат сравнения в части отличающихся данных). Весьма распространенный кейс для компаний, которые режут разбухшие базы на актуальную с остатками и архивную с доступом только для определенных людей и ежедневной синхронизацией.
35. sertak 325 26.04.19 13:43 Сейчас в теме
(34) Да, функции и процедуры находятся в модуле объекта, без проблем. Создаете новый элемент справочника с настройками, в регламенте создаете экземпляр обработки, скармливаете ей этот элемент, устанавливаете дату либо же она автоматом, если в настройках была указана относительная и вызываете соответствующую функцию. Напишу между делом пример использования обработки из регламентного задания.
36. starik-2005 3098 26.04.19 14:54 Сейчас в теме
(35)
Напишу между делом пример использования обработки из регламентного задания.
Внешние обработки могут подключаться к системе и выполняться по-расписанию. Вы не используете данный функционал БСП?
37. sertak 325 26.04.19 15:03 Сейчас в теме
(36) Нет, не реализовывал такой вариант, при наличии времени посмотрю.
38. starik-2005 3098 26.04.19 15:07 Сейчас в теме
Писал коллегам как-то лет сто назад:
------------------------
На всякий случай хочу рассказать, как за пять минут превратить внешнюю обычную обработку в подключаемое регламентное задание для систем на базе БСП 2.х. (все наши решения, основанные на бухгалтерии 3.х).

1. Код обработки должен быть в модуле обработки, а не в ее форме.

2. Нужно создать парочку процедур:

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "0.1"; // это версия
    ПараметрыРегистрации.Назначение = Неопределено;
    ПараметрыРегистрации.БезопасныйРежим = Ложь; // ВАЖНО! это разрешение обработке выполняться в небезопасном режиме - файлы, интернет, ...
    ПараметрыРегистрации.Информация = НСтр("ru = 'Загрузка рейтингов'");
   
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = 'Загрузка рейтингов'");
    Команда.Идентификатор = "ЗагрузкаРейтингов";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    Команда.ПоказыватьОповещение = Ложь;
   
    Возврат ПараметрыРегистрации;
КонецФункции

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды = Неопределено) Экспорт
    Если ИдентификаторКоманды = "ЗагрузкаРейтингов" Тогда
        ЗаписьЖурналаРегистрации("ЗагрузкаРейтингов", УровеньЖурналаРегистрации.Предупреждение, ЭтотОбъект.Метаданные(), ЭтотОбъект, "Начало загрузки рейтингов");
        ВыполнитьЗагрузку(); // это та самая процедура, которая будет выполняться в регламентном задании
    КонецЕсли;
КонецПроцедуры

// это та самая процедура, которая будет выполняться в регламентном задании
Процедура ВыполнитьЗагрузку()
// ... ТУТ ВАШ КОД!
// ... ТУТ ВАШ КОД!
КонецПроцедуры
---------------------
Показать
39. sertak 325 26.04.19 15:32 Сейчас в теме
(38) Спасибо, при наличии времени думаю сделать, основное время работаю с нетиповой конфигой, с БСП редко имею дело последнее время.
40. webester 26 27.04.19 07:27 Сейчас в теме
(38)Извините за глупые вопросы. Я не вижу как это должно лечь в регламентные задания и в какой момент это должно произойти. Я вижу внешнюю обработку в которой описана команда вызова серверного метода. Это стандартная технология подключения внешних обработок в БСП. Не могли бы вы объяснить подробнее причем здесь регламентные задания, если вам не сложно.
41. starik-2005 3098 27.04.19 10:52 Сейчас в теме
(40) всякую подключенную внешнюю обработку можно настротть выполняться по расписанию - это стандартный механизм БСП. Настраивается все в справочнике внешних обработок. Могу за мзду показать как, если до сих пор не ясно.
43. sergathome 4 27.04.19 12:56 Сейчас в теме
(41) ну не всякую, не вводите слабые умы в заблуждение...
47. starik-2005 3098 27.04.19 17:16 Сейчас в теме
48. starik-2005 3098 27.04.19 17:17 Сейчас в теме
(44)
Можно без мзды
Без мзды я уже все написал )))
45. webester 26 27.04.19 15:51 Сейчас в теме
(41)Понятно. Я не понял просто, Написано вот как добавить обработку в регламентные задания. А код приведен регистрации обработки. Так бы и написали - Можно добавить обработку с вызовом серверного метода и зарегистрировать ее как регламентное задание штатными средствами БСП.
Важно понимать, то, что хотел написать программист и то, что он написал, очень часто не одно и то же©не помню кто
46. acanta 27.04.19 16:33 Сейчас в теме
(45) Мы покажем что у нас есть и посмотрим что ты можешь ©заказчики
Удачи в продвижении.
42. sertak 325 27.04.19 12:33 Сейчас в теме
(40) Я имел в виду создание нового регламентного в конфигураторе, а через БСП я не рассматривал.
49. sertak 325 30.04.19 12:51 Сейчас в теме
Версия 11.4.35:
модальные окна заменены на блокирующие;
реализована возможность выгрузки результата сравнения в файл на клиенте.
starik-2005; +1 Ответить
50. kosmo0 111 04.05.19 16:54 Сейчас в теме
Вот о чем я мечтал давненько, но руки так и не дошли. А то некоторое количество удаленных БД в тьму-таракани и некоторых случаев сбоев обмена данными.

К сожалению проверить данную обработку смогу не скоро. Поделюсь своими мыслями о функционале. Очень интересны шаблоны проверки баз с идентичными конфигурациями. Обычно самое важное в данных это бухгалтерские регистры и регистры накопления. Сравнивать по записям накладно и долго, поэтому можно организовать сравнение сверху-вниз. 1 этап - остатки на начало каждого месяца и помесячные обороты (за заданный период). Потом, при необходимости, по неделям, по дням, по записям. По измерениям.
То есть предыдущие периоды сравнивать для контроля, а последний год (или квартал) с максимальной детализацией.

Вот как-то так.
51. sertak 325 06.05.19 20:58 Сейчас в теме
(50) интересная идея, подумаю на досуге, что-то вроде справочника Сценарии сравнения, каждый элемент которого включает список настроек сравнения.
52. starik-2005 3098 07.05.19 10:05 Сейчас в теме
(50) лучше обороты сравнить за периоды, если есть разница - найти период с нестыковкой, потом уже по нему детализироваться. вываливая только разницу (могли контрагента поменять в базе А, а в базу Б он не приехал - самая частая причина нестыковок, а могли документ распровести или он не приехал по какой-то причине)


(51) в принципе со сценариями и разворотом детализации вполне себе продукт получается за денежку. Автоотправку на почту прикрутить - и за 2к выставить.
53. sertak 325 07.05.19 11:10 Сейчас в теме
(52) целей заработать нет, но идея стоящая. Я когда-то в одной компании работал, там 8 юрлиц было и даже конфиги не все одинаковые, а они друг другу комиссионный товар продавали, хлебнул горя, тогда-то и начала зарождаться идея о создании гибкого инструмента для сравнения чего угодно. Сейчас у меня баз немного, но сценарность и тут бы пригодилась. Попытка не пытка же ).
54. starik-2005 3098 07.05.19 11:17 Сейчас в теме
(53) мы в свое время базу написали, там SQL-запросики всю разность давали.
59. sertak 325 16.08.19 16:41 Сейчас в теме
(50)
(54)
Реализовал сценарное сравнение данных: https://infostart.ru/public/1109393/.
55. sertak 325 30.07.19 09:07 Сейчас в теме
Версия 12.0.37
заголовок устанавливается при открытии из файла или элемента справочника, вручную не изменяется;
справочник хранения настроек НастройкиКонсолиСравненияДанных переименован в ВС_ОперацииСравненияДанных для унификации с конфигурацией Сценарное сравнение данных;
реализована возможность заполнения на основании элемента справочника ВС_ОперацииСравненияДанных при открытии (параметр ОперацияСравненияДанных);
при сохранении вместо открытия формы выбора можно обновить элемент справочника, из которого была заполнена консоль.
56. sertak 325 01.08.19 12:17 Сейчас в теме
Версия 12.1.38
реализована возможность указания правой границы относительного периода (например, первые 6 месяцев из последних 1 лет, первые 1 день из последних 2 дней, т.е. вчера).
57. sertak 325 12.08.19 12:45 Сейчас в теме
Версия 12.2.39
пересчет значения относительного периода перенесен в модуль объекта, вызывается при изменении реквизитов формы и в процедуре сравнения данных (перед программным вызовом процедуры СравнитьДанныеНаСервере() необходимо либо рассчитать и установить границы периода либо вызвать процедуру ОбновитьДанныеПериода() для автоматического расчета);
перед закрытием выводится запрос на обновление связанного элемента справочника ВС_ОперацииСравненияДанных;
в произвольном коде условий вывода строк в таблицу расхождений обращение к имени реквизита теперь производится по имени СтрокаТР.<Имя реквизита>;
исправлена ошибка, из-за которой не отрабатывал произвольный код обработки ключа в базах 1С 8.
58. sertak 325 13.08.19 16:37 Сейчас в теме
Актуальная инструкция теперь всегда доступна по этой ссылке.
60. sertak 325 19.08.19 10:02 Сейчас в теме
Версия 12.2.41
доработаны пиктограммы активных реляционных операций;
добавлена команда скачивания последней версии обработки с сайта автора;
для источника типа Таблица номер первой строки нужно указывать в соответствующем реквизите;
исправлена ошибка, из-за которой не контролировалось заполнение некоторых реквизитов для источников типа Таблица.
61. sertak 325 20.08.19 08:46 Сейчас в теме
Версия 12.2.42
исправлена ошибка, из-за которой в запросе к внешней базе 1С 8 колонку нельзя было назвать Количество;
на интерфейсе формы команды перехода к web-страницам сгруппированы в подменю Поддержка.
62. sertak 325 21.08.19 15:11 Сейчас в теме
Версия 13.0.43
реализовано получение данных из файловых информационных баз 1С 7.7 через простые запросы.
63. sertak 325 22.08.19 16:11 Сейчас в теме
Версия 14.0.44
реализовано получение данных из файлов формата DOC (Microsoft Word);
реализована возможность указания конкретного номера книги при получении данных из файла формата XLS;
реализована возможность загрузки файлов с клиентского ПК (тем не менее, необходимое для чтения ПО должно быть установлено на сервере, например, Microsoft Office, т.к. обработка файлов производится на сервере).
64. sertak 325 23.08.19 14:23 Сейчас в теме
Версия 14.1.45:
реализована возможность отключения условий вывода и запрета вывода строк без удаления строк табличной части;
расширен список возможных значений версии платформы 1С 8 (используется для получения ProgID COM-объекта при подключении к внешней базе);
реализован вывод предупреждения, если число колонок в файле XLS меньше указанного в настройках для ключа или реквизитов;
реализован вывод предупреждения, если число колонок в выборке 1С 8 / SQL меньше указанного числа столбцов в ключе;
исправлена ошибка, из-за которой при ключе из трех столбцов и некоторых вариантах обработки ключа колонки могли расположиться в некорректной последовательности.
65. sertak 325 30.08.19 10:32 Сейчас в теме
Версия 15.0.46:
реализована возможность получения данных из строки JSON;
после открытия операции из справочника или файла таблица расхождений очищается;
доработан интерфейс.
66. user612295_death4321 22.09.19 23:52 Сейчас в теме
Добрый вечер.

В режиме совместимости 8.2.13 почти завелась с пол пинка.

Предлагаю рассмотреть вариант заменить новые платформенные строковые функции СтрНайти и прочее на функции из БСП модуля СтроковыеФункции*, это позволит иметь совместимость между платформами.

Так же у меня по каким то причинам неверно заполнялись реквизиты при сравнении двух баз через COM, все данные были записаны как COMОбъект, особо ночью разбираться не стал, вставил заглушку в процедуре СравнитьДанныеНаСервере в виде ЗначениеИзСтрокиВнутр(ПодключениеБ.ЗначениеВСтрокуВнутр(ТЗ_Б_Сгруппированная)) - вроде сравнило корректно.
67. sertak 325 23.09.19 08:14 Сейчас в теме
(66) Добрый день. Обработка должна работать в любой конфигурации, в т.ч. нетиповой, поэтому про БСП она ничего не должна знать, но я доработаю для 8.2 по возможности.
По ошибке: хотелось бы попробовать воспроизвести у себя, напишите в личку подробности источников данных, может, конфигурации можете предоставить, я бы поэкспериментировал.
68. sertak 325 24.09.19 08:07 Сейчас в теме
(66)
Так же у меня по каким то причинам неверно заполнялись реквизиты при сравнении двух баз через COM, все данные были записаны как COMОбъект, особо ночью разбираться не стал, вставил заглушку в процедуре СравнитьДанныеНаСервере в виде ЗначениеИзСтрокиВнутр(ПодключениеБ.ЗначениеВСтрокуВнутр(ТЗ_Б_Сгруппированная)) - вроде сравнило корректно.

При получении данных из внешней информационной базы 1С 8 необходимо явно преобразовать все ссылки к простым типам, как правило, к строкам через ПРЕДСТАВЛЕНИЕ(), ВЫРАЗИТЬ(... КАК ...) или через явное получение конкретного реквизита ссылки, который обычно используется как представление ссылок данного типа. Иначе в текущей базе ссылка никак превратится в представление, как это происходит со ссылками, для которых текущая база является родной, более того, ссылки из внешней базы будут отображаться как "COMОбъект", что никак не поможет при анализе расхождений. Преобразование ЗначениеИзСтрокиВнутр(ПодключениеБ.ЗначениеВСтрокуВнутр( помогло в данном случае получить преставления, но я рекомендую приводить ссылки к простым типам в запросе.

Пример:
вместо ссылок

ДокументПриходТовары.Ссылка,
ДокументПриходТовары.Товар

нужно использовать их представления, которые можно получить, например, так:

ПРЕДСТАВЛЕНИЕ(ДокументПриходТовары.Ссылка),
ДокументПриходТовары.Товар.Код

Это что касается реквизитов. В случаях с ключами все так же, за исключением ситуации, когда из ссылки извлекается GUID, тогда ссылку не нужно преобразовывать в простой тип.
69. sertak 325 24.09.19 08:14 Сейчас в теме
(66)
Предлагаю рассмотреть вариант заменить новые платформенные строковые функции СтрНайти и прочее на функции из БСП модуля СтроковыеФункции*, это позволит иметь совместимость между платформами.

К сообщению прикреплена обработки версии 15.0.46.2 для платформы 8.2 (тестировал на 8.2.19.130).
Прикрепленные файлы:
ВС_КонсольСравненияДанных_15.0.46.2.epf
70. sertak 325 28.10.19 13:11 Сейчас в теме
Версия 15.0.47:
исправлена ошибка, из-за которой не обновлялись связанные элементы справочника Операции сравнения данных.
Спасибо пользователю MrGrey за выявление ошибки.
71. Xershi 1561 20.11.19 13:58 Сейчас в теме
Добрый день!
Заинтересовал вариант сравнения по oData:
https://infostart.ru/public/711302/
Планируете расширять функционал?
73. sertak 325 25.11.19 14:55 Сейчас в теме
(71) Добрый день. Да, есть планы, но все зависит от наличия свободного времени.
По oData никогда не пробовал, интересная тема.
76. Xershi 1561 25.11.19 15:39 Сейчас в теме
(73) сообщите, если появится время. Пока отложил такую задачу на полку!
77. sertak 325 25.11.19 17:37 Сейчас в теме
72. Xershi 1561 21.11.19 11:35 Сейчас в теме
По ком как обычно не взлетело. Сервер 64-битный. Ни на 32-битном, ни на 64-битном клиенте класс не зарегистрирован. Регистрацию 64-битной компоненты делал.
74. sertak 325 25.11.19 14:57 Сейчас в теме
(72) Ну тут обычные танцы с бубном каждый раз приходится проходить, чтобы COM заработал. Ссылки на рецепты не стану приводить, вы их и без меня найдете.
75. Xershi 1561 25.11.19 15:39 Сейчас в теме
(74) единственное, что может решить эту проблему создание ком-коннектора, но это конечно не вариант((
78. cprit 902 27.01.20 14:40 Сейчас в теме
Добрый день!
Для обычных форм есть замечательный набор инструментов "Инструменты разработчика 1С", но его невозможно использовать в линуксе и в тонком и веб клиенте.

Поэтому мы решили собрать подобный пакет, но который будет работать только на платформенных механизмах или с использованием кроссплатформенных компонент.

Использование этого пакета инструментов хотим сделать общедоступным(OpenSource), разработку вести через гитхаб с использованием EDT.

Можем ли мы включить в этот набор обработки(или часть идей и функционала) из этой публикации, естественно с указанием авторства?

На текущий момент нашли основные инструменты (консоль запросов, консоль кода, редактор реквизитов, консоль компоновки и др.) для включения в инструментарий. Сейчас занимаемся получением одобрения авторов. Часть включаем свои- редактор предопределенных, редактор констант, Групповая обработка

Ссылка на репозиторий с новыми инструментами https://github.com/cpr1c/tools_ui
Публикация на инфостарте https://infostart.ru/public/1178280/
79. sertak 325 28.01.20 06:06 Сейчас в теме
(78) Добрый день. Да, обработку можно включить в пакет.
80. sertak 325 10.04.20 13:24 Сейчас в теме
Версия 15.0.48:
добавлено индексирование сравниваемых таблиц значений.
Evg-Lylyk; +1 Ответить
81. sertak 325 30.04.20 16:54 Сейчас в теме
Версия 15.1.49:
реализована возможность выгрузки файла расхождений в форматах CSV, DOCX, HTML, MXL, ODS, PDF, TXT, XLS, XLSX.
82. sertak 325 06.05.20 22:08 Сейчас в теме
Версия 15.1.50:
исправлена ошибка, возникавшая при сравнении по составному ключу в последней версии обработки.
83. sertak 325 10.05.20 17:48 Сейчас в теме
Версия 15.2.51:
добавлена возможность предварительно просмотра данных для каждого источника данных в режимах Все строки, 100 строк, 1000 строк, Дубликаты;
в строках с ключами, для которых обнаружены дубликаты, значения реквизитов больше не выводятся в таблице значений Результат сравнения (для детального просмотра строк-дубликатов предназначена форма предварительного просмотра в режиме Дубликаты).
84. Cyberhawk 135 15.06.20 10:35 Сейчас в теме
Хотелось бы иметь возможность при двойном клике по сообщению "<Дата> формирование файла завершено (<полный путь к файлу>)" чтобы на клиенте открывался каталог с позиционированием на этом файле (для случая, когда этот файл сохранен через команду для клиента, либо в настройке выгрузки был указан сетевой путь).
Также на вкладке основных настроек хочется у поля пути к файлу видеть кнопку-лупу для открытия указанного каталога, а в идеале - еще и команду проверки записи в этот каталог.
85. sertak 325 15.06.20 12:12 Сейчас в теме
(84) Спасибо за предложение, подумаю, как реализовать.
86. Cyberhawk 135 15.06.20 12:45 Сейчас в теме
Фич-реквест: хочется иметь возможность задавать синонимы колонкам, которые отображают реквизиты (в таблице расхождений).
Чтобы вместо "Реквизит А1" и т.д. была возможность вводить более человекочитаемые представления.
Как вариант: для источников-запросов брать из самого запроса, для источников-таблиц - с закладки "Настройки" из таблицы "Заполнение и обработка реквизитов получателя".
87. sertak 325 15.06.20 14:19 Сейчас в теме
(86) Принято. Мысль возникала давно у меня, останавливало всегда только усложнение настройки обработки для конечного пользователя, которую и так уже не назовешь простой. Но раз есть спрос на такой функционал, можно и подумать.
88. Cyberhawk 135 15.06.20 15:07 Сейчас в теме
(87) Да, порог вхождения не самый низкий, какой мог бы быть. Лично мне с наскоку взять не удалось, но после чтения мануала все получилось.
Но я пользуюсь этим как разработчик, который потом предоставляет результаты расхождения (либо настройку сравнения) конечному пользователю, и поэтому хотелось бы через настройки управлять заголовками столбцов, отображаемых в результате расхождения.
А то пользователь точно не поймет, что там за реквизит 1, реквизит 2 и т.д., а вот если их облачить в более читаемые синонимы - все становится гораздо радужнее :)
100. sertak 325 21.09.20 12:06 Сейчас в теме
(86) Реализовано в версии 15.4.55.
89. Cyberhawk 135 15.06.20 16:06 Сейчас в теме
Еще фич-реквест (надеюсь, никого этим не распугаю, но даже в этом случае сценарий использования хоть где-то будет зафиксирован как пища для размышления): хочется иметь возможность фильтровать источник данных до его "передачи" в сравнение.
Например, присылают нам огроменный сводный какой-нибудь экселевский файл, где сгруппированы различные типы документов и их номера, и в каждой итерации сравнения (под каждую настройку) мне хочется обрабатывать только какую-то часть / область входящего источника данных (сравнивая их с документами в целевой инфобазе, то есть второй источник - это запрос). Для каждого типа документа ключ и настройки сравнения (вывода) в общем случае свои, т.е. различаются.

Вариант через ограничения вывода строк не подошел: во-первых, в источнике данных возможны дубли (когда два документа разных типов имеют один и тот же номер), и это ограничение не влияет на это. Во-вторых, когда есть дубли по ключу, то не нашел, как в таблице расхождений выводить эти дубли (это тоже фич-реквест - хочется через плюсик разворачить и видеть зависимость "один ко многим", когда дубли только с какой-то одной стороны).
Вручную вкорячивать синтетический ключ в присылаемый источник данных (файл) тоже не хочется. Равно как и вручную удалять что-то из него или переносить нужную область в источник вида "табличный документ".
90. sertak 325 15.06.20 20:08 Сейчас в теме
(89) Принято. Есть над чем подумать.
91. Cyberhawk 135 16.06.20 09:46 Сейчас в теме
Я на вкладке таблицы расхождения отключил вывод реквизитов (для примера оставил только А1, А2 и Б1).
В файле, получаемом в результате выполнения команды "Выгрузить результат сравнения":
- присутсвуют все колонки (по 5 реквизитов для обоих источников)
- свернуты по ширине почему-то все колонки, кроме первых трех (номер строки, количество строк в А, количество строк в Б), и колонки Б1

На картинках пример, как это настроено и выглядит в интерфейсе, и как это получается в файле:

1.
2.

В этом есть какая-то задумка? Если нет, то фич-реквест: чтобы в колонках выгружаемого файла присутствовали только те колонки, которые отмечены в самом инструменте. Ну и желательно, чтобы они по ширине хотя бы немного больше, чем пара пикселей, были :)
92. sertak 325 16.06.20 10:55 Сейчас в теме
(91) Кнопки на форме на данный момент предназначены исключительно для настройки визуализации формы.
Колонки в выгружаемом файле имеют минимальную ширину, если в них нет данных, иначе система пытается рассчитать оптимальную ширину, анализируя значения колонок. Если то, как отработало у вас, не попадает под эту логику, скиньте мне на sertakov [sobaka] list.ru ваш результат сравнения в xls, попробую при наличии времени поэкспериментировать с шириной колонок для ваших данных.
По настройке списка выгружаемых колонок принял, запишу на перспективу.
93. Cyberhawk 135 19.06.20 16:42 Сейчас в теме
Фичреквест: добавить опцию, позволяющую сохранять вместе с настройками и сами источники данных (конкретно сейчас интересует только табличный документ).
При сохранении настройки и перед ее загрузкой должна быть опция или вопрос: сохранить / загрузить вместе с сохраненным содержимым табличного документа или без него.
А то сейчас загрузил старую настройку, а почему она именно такая (ключ, произвольный код, столбцы-реквизиты) - уже не вспомнить.
Т.е. хотелось бы иметь возможность взглянуть именно на содержимое источника данных. Возможно, тогда это уже не сохранением настройки нужно называть, а сохранением конкретной итерации сверки ("слепка" / "профиля" / "демо-данных", если хотите). Но очень хотелось бы чтоб это был один файл / элемент справочника, чтоб не приходилось настройку и табличный документ подгружать отдельно друг от друга.
wowik; sertak; +2 Ответить
94. sertak 325 20.06.20 07:18 Сейчас в теме
98. sertak 325 04.09.20 12:02 Сейчас в теме
(93) Реализовано в версии 15.3.54
95. sertak 325 20.08.20 15:55 Сейчас в теме
Версия 15.2.52:
исправлена ошибка, из-за которой числовые значения в столбцах ключа округлялись до целого при сравнении.
96. sertak 325 03.09.20 10:25 Сейчас в теме
Версия 15.2.53:
доработан механизм расчета оптимальной ширины полей при выгрузке результата сравнения в файл.
97. sertak 325 04.09.20 12:02 Сейчас в теме
Версия 15.3.54:
реализована возможность сохранения/загрузки табличных документов в файл/из файла настроек или в элемент/из элемента справочника ВС_ОперацииСравненияДанных для источников данных типа Таблица;
доработан интерфейс для более компактного размещения кнопок сохранения/загрузки настроек.
Оставьте свое сообщение