gifts2017

Сравнение регистров

Опубликовал Михаил Семенов (Shaman100M) в раздел Обработки - Универсальные обработки

Сравнение остатков регистров оперативного учета. Возможные сферы применения: разнообразные проверки после переносов, сверток, др. ситуаций. Не требует ВК, работает быстро и наглядно.

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

Обработка оптимизирована по скорости: время выполнения сравнимо с временем формирования запроосов по регистрам. Механизм формирования текста запроса по регистрам взят из стандартной свертки ТиС 9.хх, с небольшими доработками, но обработка универсальна, работает для любых регистров остатков в оперативном учете. При выполнении производится замер времени и комментирование текущих действий в окне сообщений.

Вкратце, как работать:

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

Изменения от 29.11.2007

- добавлен состав сравниваемых измерений и ресурсов регистра. Для текущей строки в списке регистров внизу отображается индикатор "Неполный состав...". Для отметки или снятия пометок обрабатываемых ресурсов и измерений нажать Enter на текущем регистре или кнопку с картинкой "редактировать".
- граница периода запросов уточнена с даты до документа.
- кнопки сохранения и восстановления настроек списка регистров.
- доработано описание

Гарантия возврата денег

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Сравнение регистров
29.07.2015
1400 руб.

Моментальная
доставка

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Михаил Семенов (Shaman100M) 15.10.07 18:05
2. Сhe Burashka (CheBurator) 16.10.07 12:55
+1
немного непонятно какая инфа выводится на рисунках 2,3.
обработка нужная, особенно для тех, кто проводит всякие "регламентные" операции...
3. Михаил Семенов (Shaman100M) 16.10.07 13:34
Сергей, спасибо за отклик.
Инфа - это содержание окна состояния... показал как рисунок, чтобы оставить наглядность форматирования.
Эта возможность - с ледующей разработке.
4. Михаил Семенов (Shaman100M) 16.10.07 13:52
+ (3) окна состояния = окна сообщений
выложил http://infostart.ru/projects/1330
5. Михаил Семенов (Shaman100M) 16.10.07 21:13
Данные по рис 2 и 3, по колонкам:
- минут с начала обработки
- время выполнения текущей операции
- кол-во обращений к "счетчику"
- скорость счетчика ("оборотов в минуту")
- комментарий

16.10 21:00 архив обновлен в связи обнаруженным "ляпом вторичной доработки" - файлы с сохраненным регистром при переходе к след. регистру удалялись. Могло работать для одного регистра... Теперь нормально.
6. Артур Аюханов (artbear) 15.11.07 14:08
Вещь полезная.
Но ИМХО еще лучше ее использовать в составе специализированных средств проверки/контроля.
Пример - использование ВК 1С++ и спец.системы FuncTest довольно просто позволяет выполнять сравнение различных баз и отчетов.

Например, у меня система FuncTest используется для проверки состояния системы за прошлые периоды.
.
Схема работы Фанктест - есть несколько вариантов тестов/обработок. Для каждого теста характерны наличие условий тесты и ожиданий выполнения теста.
В текущем состоянии возможны следующие виды тестов
- проводки документа
- движения регистров для документа
- движения журналов расчетов для документа
- движения журналов расчетов для объекта журнала расчета
- произвольные обработки с произвольными условиями - в этом случае обработка просто должна вернуть произвольную таблицу значений с ожиданиями и все :)
.
Собственную обработку для Фанктест написать очень легко, т.к. есть возможность получить любые настройки из уже открытой формы с помощью 1С++/FormEx :)
.
Например, для Фанктест мной написаны несколько обработок - общая ОСВ, ОСВ по счетам, анализ счета, ведомость по регистрам и т.д.
В итоге нажатием одной кнопки я могу сверить данные сразу за несколько тестов/отчетов/периодов.
.
Очень рекомендую :)
http://1c.alterplast.ru/functest/
7. Артур Аюханов (artbear) 15.11.07 14:16
Т.о. система сравнения/проверки/контроля типа Фанктест берет на себя основные тяжелые, но одинаковые для всех обработок, функции - сравнение, показ различий в удобном виде, установка необходимых условий для теста и т.д.
А обработка/класс просто должны вернуть произвольную таблицу ожиданий теста - можно возвращать как ТЗ, и таблицу печатной формы !!
.
Для текущей задачи можно сделать так
1) пишется обработка:
- на форме есть спец.условия типа вид регистра, период регистра, возможные ограничители
- в Форма.Параметр должен быть возвращен результат выполнения в виде ТЗ или печатной таблицы - т.е. просто свой результат :)
2) В браузере тестов Фанктест добавляется новый тест, указываемый вид "Отчет", заполняем условия из формы обработки (есть спец. кнопка для этого)
3) в одной базе сохраняем ожидания теста
4) в другой базе открываем браузер тестов Фанктест и нужный тест, нажимаем кнопку "тестировать" и все готово :)
.
Очень и очень просто и удобно.
Рекомендую.
.
ЗЫ но юнит-тесты еще лучше :)
8. Артур Аюханов (artbear) 15.11.07 15:02
Еще пример моего использования Фанктест :)
Стояла у меня задача внедрения квартплаты на базе 1С, т.е. переход от старой, ДОС-ДБФ версии, на новую, 1С-версию. Количестов объектов 70 000 лиц.счетов, на каждый объект по несколько видов начислений и т.д.
В общем, совсем неслабое количество :)
.
Необходимо было каким-то образом сверить соответствующие данные в старой и новой программе, тем более, что переносить данные пришлось с помощью многих итераций и исправления ошибок :)
.
Так вот, для Фанкеста мной были написаны несколько спец.обработок, которые с помощью прямых запросов 1С++ (для нормальной скорости получения данных) получали сводные данные по районам города/ЖКХ, по группам жителей и т.д. для 1С и старой ДБФ-базы.
Т.е. я получал ожидания тестов для старой базы в Фанктесте, выполнял перенос данных в новую базу, и через Фанктест получал сравнение необходимых мне данных.
Я просто не представляю, как без Фанктеста я бы смог оперативно сверить столь большие объемы данных
9. Михаил Семенов (Shaman100M) 15.11.07 15:29
(7) Ссылку посмотрел. ArtBear, поправьте, если не прав. Что нужно сделать:
1. Установить 1cpp
2. Установить Functest, изучить как он работает.
3. Опять же, нужно писать свою обработку, формирующую ТЗ с остатками регистра.
4. Запустить два теста, чтобы сравнить две ТЗ.
5. Проверить приемлимое время работы для большого количества движений.
6. Все это оформить и выложить на инфостарте, чтобы все было просто и понятно для всех.

Возьметесь за реализацию? ;)
10. Михаил Семенов (Shaman100M) 15.11.07 15:35
(8) Вода камень точит. Не было бы фанктеста, пришлось бы что-нибудь другое придумывать.
11. Артур Аюханов (artbear) 15.11.07 15:58
(9) В принципе нет проблем :)
пп 1, 2 верны. Изучение несложно, интерфейс простой :)
п.3 нужно слегка поправить твою же обработку для возврата полученного результата, наверняка строчек 10, не больше :)
п.4 зачем 2 теста? тест как раз один, но в используется двух базах :)
т.е. в 1 базе получаем ожидания теста, а во второй нажимаем тестировать
п.5 см.п3 :)
п.6 самый сложный, как обычно :)
.
На всякий случай для взаимопонимания :)
Пойми, я же не хаю твою обработку, просто считаю, что ей и подобным разработкам проверки/сравнения/контроля место в единой удобной и мощной системе!
12. Артур Аюханов (artbear) 15.11.07 16:00
(10) Да, без него пришлось бы с нуля делать много чего, т.е. опять же велосипед изобретать :)
ЗЫ А ООП все-таки рулит :)
13. Михаил Семенов (Shaman100M) 15.11.07 16:19
(11), (12) Спорить трудно. Даже в случае беглого осмотра истории версий http://1c.alterplast.ru/functest/whatsnew.html достаточно понять, что система фанктест действительно мощная и на нее положено очень много трудов. Это заслуживает уважения. Респект!
14. Михаил Семенов (Shaman100M) 29.11.07 16:31
15. ToR0310 (tor0310) 16.12.07 18:36
обработка вылетает на
Код
ТабОстатков.Заполнить(2,КолСтрок1   +    1,КолСтрок2,НомерКолонки);
Показать полностью

если строк от 2й базы не выводиться => КолСтрок1 = КолСтрок2 = ТабОстатков.КоличествоСтрок()
поэтому КолСтрок1+1 приводит к ошибке
добавьте проверку
Shaman100M; +1 Ответить 1
16. Михаил Семенов (Shaman100M) 18.12.07 14:24
(15) Спасибо. Там чуть выше не срабатывало условие. Обновление выложил.
17. А Р (p1l1gr1m) 24.07.08 01:18
По крайней мере это что-то более-менее оригинальное. Плюс.
18. kaa79 30.10.11 10:46
Спасибо за обработку, очень помогла при переводе очень запущенной большой базы на sql. Была вероятность что при пересчете регистров остатки могли поползти.
19. Константин Соловьев (solo111) 02.12.11 09:41
Спасибо за обработку! :)
Но есть проблема:
После свертки (вашей же обработкой) базы Торговли (переделанной, но в данном случае, думаю, это не играет особой роли) обработка выдает различия по регистрам ОстаткиТМЦ и ПартииНаличие, причем, если я просто регпринтом посмотрю остатки по конкретной комбинации измерений, по которой есть расхождения, то остаток одинаковый - т.е. свертка сработала правильно, глючит, похоже, именно обработка сверки остатков, причем когда значения большие, например, было 999999975, столько же и осталось, но обработка показывает, что было - 999999974.99999, а стало 999999975. Похоже, не хватает разрядности? Расхождения небольшие и (для нас) незначащие в данном регистре, но напрягают :)

Да, в обработке последние изменения от 29.11.2007

Посмотрел, уже в ТЗ ТабОстатков, куда сохраняются значения из запроса - неправильное число.
21. Павел Чадин (Pashach) 01.08.12 17:07
Интересная обработка, но:
Если в регистре есть измерение "Документ" возникает ошибка в запросе при объявлении переменной:
"Документ = Регистр.****.Документ;"
Пофиксил, в конец переменных запроса добавил 0, заработала.
22. Михаил Семенов (Shaman100M) 02.08.12 09:50
(21) Это слово (Документ) является зарезервированным словом языка запросов и не может использоваться в качестве имени внутренней переменной запроса. Ну, конечно, дело автора конфы назвать измерение "Документ", но я бы так делать не стал. Возможно, не единственная обработка / отчет споткнется об это измерение.
В любом случае, спасибо за фикс. :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа