gifts2017

Настройка курсоров на триггерах для 1C 7.7+Selta+Postgresql

Опубликовал Антон Азанов (Djelf) в раздел Программирование - Инструментарий

В новых версиях Selta начиная с 1.0.6 (SQL базы 1С 7.7 в Postgresql) начал применяться более продвинутый подход к SQL-курсорам (пересоздание курсоров основано на триггерах), однако выставлять триггеры на таблицы вручную неудобно. Обработка под 1С77 с использованием 1С++ решает эту небольшую проблему.

Selta - один из самых необычных и неоднозначных проектов компании Etersoft под 1С 7.7 (и не только), позволяет перевести базы 1C 7.7 c MS SQL на Linux + postgresql при существенной экономии средств.

Несмотря на то, что скорость отчетов и проведения документов 1С в разделенном режиме в 1С 7.7+Selta+Postgresql, уже начиная с первых версий Selta, была сравнима с MS SQL, до версии Selta 1.0.6 существовал существенный недостаток - чрезвычайно медленная работа обновляемых курсоров (дикие тормоза в журналах и справочниках).

К сожалению, в postgresql обновляемые курсоры отсутствуют совсем, такого режима работы просто нет, поэтому до версии Selta 1.0.6 курсоры приходилось пересоздавать каждый раз когда происходило перемещение от одной записи к другой в курсоре, что и приводило к тормозам.

Новый вариант Selta позволяет пересоздавать курсоры только в случае изменения данных в таблицах участвующих в запросе для курсора.

Регистрация изменений ведется через триггеры, но как всегда существуют подводные камушки: слишком много триггеров это замедление работы базы (10% (и выше) потери производительности на перепроведении документов на ТиС(Демо) при установке триггеров на все таблицы без исключения).

Компромиссным решением стала возможность создания служебной таблицы, в которой указываются таблицы 1С (по маске или точно), для которых будут использованы триггеры: http://wiki.etersoft.ru/SELTA/cursorstriggers?v=1d19

А поскольку копаться в 1Cv7.DDS неинтересно, а задавать реальные имена таблиц ручками вообще не наш метод, была создана данная обработка.

Использует 1С++ 3й версии, ее надо кинуть в BIN или в каталог ИБ.

Управление основано на "табличном поле" 1С++, поэтому почти никаких кнопок, только перетаскивание и галочки.

Ограничение: запускается только на версии баз под Selta 1.0.6 (на всякий пожарный, но это можно изменить в коде обработки). На MS SQL запуститься не должна и для этого не предназначена!!!

Не забывайте нажать кнопку "Пересоздать", при этом будут внесены все изменения и пересозданы триггеры, таблица изменений выбранных таблиц и обновлено правильное/текущее состояние триггеров в самой форме.

P.S. Разработки etersoft выдаются на тестирование по заявке на e-mail (на 60 дней, насколько я знаю), должно хватить и на предварительные и на боевые тесты.

P.P.S. Разработчики wine@etersoft и selta в основном появляются тут: http://linuxforum.ru/index.php?showforum=58

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

Наименование Файл Версия Размер Кол. Скачив.
Установка Триггеров на PGSQL
.1239114737 25,90Kb
25.09.09
44
.1239114737 25,90Kb 44 Бесплатно

См. также

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

Комментарии

1. Romarius (Romarius) 08.04.09 10:53
Хотелось бы услышать комментарии тех, кто уже использует Selta. А от себе плюс.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа