powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
13 сообщений из 13, страница 1 из 1
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37552269
alexey-simf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имеем: 1С 7.7 SQL
Уже существует несколько десятков периферийных баз.
Посредством использования триггера в таблице "_1SDWNLDS" по действию "Delete" была настроена выгрузка документов так, что конкретная база получает только свои документы независимо от места создания этих документов (по общему реквизиту документа, равного коду ИБ, для которого документ предназначается), т.е. замена кривой схемы "место создания и центр". При этом для документов стоит метод "все информационные базы", а триггер "отрезает" лишнее.

Всё хорошо, но данный триггер не работает при первичной выгрузке, т.е. при создании новой периферийной базы. Раньше проблема решалась другим (кривым) способом, но надо от такой кривизны избавляться.

Вопрос: состояние какой таблицы и на какое действие следует отслеживать, чтобы использовать триггер для фильтрации первичной выгрузки?
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37552304
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexey-simf,

Думаю, что таким образом задачу не решить. А решить с противоположной стороны:
- первичную выгрузку из центральной или отфильтровать, или создать самостоятельно (никаких данных, только таблицы управления обменом, да 1cv7.md -структура файла очень проста)
- заполнить нужными объектами _1SDWNLDS (все справочники, все константы, нужные документы)
- и сделать первую выгрузку изменений от ЦБ к ПБ.

Можно даже не "нужными", а всеми объектами _1SDWNLDS заполнить. Триггер - он ведь отфильтрует?
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37552524
alexey-simf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что-то я не всё могу понять, потому уточню по схеме, которую использовал до этого.

в конфигураторе добавлял новую ПБ.
делал первую выгрузку.
в 1Cv77.dat убирал почти всё, оставлял только ключевую информацию по базе, т.е. буквально несколько первых строк файла.
делал загрузку в ПБ, а потом ответную в ЦБ.
из любой действующей ПБ копировал dbf-файлы справочников (после одновременной выгрузки в две упомянутые ПБ)
в ЦБ перезаписывал константы, чтобы они в ближайшей же выгрузке ушли в новую ПБ.

после чего в ЦБ, уже в рабочем режиме, создавались документы, которые после фильтрации триггером уходили в новую ПБ.

все действия занимали буквально 5 минут, проблема лишь в том, что первая выгрузка в ПБ длиться около 1,5 часов, хотя из неё нужен лишь кусочек файла 1Cv77.dat и 1Cv77.MD плюс понимание 1Синой, что таки прошла первая выгрузка в новую ПБ и что уже можно принимать ответные выгрузки.
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37552555
alexey-simf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
похоже мне надо вручную добавить запись в таблицу _1SDBSET, придумав свой DBUUID и заполнив остальные поля.

статус новой базы от которой ещё не было ответа, вроде как N

вопрос только в том, какие могут быть подводные камни, какие таблицы ещё задействованы в этом процессе?
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37552574
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexey-simf,

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

А вот фокус с подменой файлов справочников - не очень хорош. Если уж использовать такое для файловой семерки - то подменять справочники+1scont+1sblob в комплекте. Тогда и константы перезаписывать не надо - только подправить значения немигрирующих.
Потому что у справочников могут быть и периодические реквизиты, и строки неограниченной длины.
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37552712
alexey-simf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за помощь, буду играться на тренировочных базах.
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37553912
Leierkastenmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexey-simf,

Как вариант один раз сделайте эталонную периферийную ИБ, в которую будут попадать только общие для всех реквизиты, поставьте ее на постоянный обмен, чтобы она была всегда в актуальном состоянии. А потом просто делайте все новые периферийные базы из нее следующим образом: руками создаете запись в _1sdbset в ЦБ, создаете так, чтобы 1ска сразу понимала, что база уже рабочая и выгрузка в нее была, копируете эталонную ПБ, в ней в таблицах 1sdbset и 1ssystem меняете нужные поля, чтобы она соответствовала новой созданной ПБ, в ЦБ SQL-скриптами в _1supdts записываете все объекты, которые должны полететь в эту базу (если такие вообще на момент создания есть), для верности еще дублируете содержимое _1supdts, которое было для эталонной ПБ, для новой ПБ.
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37554826
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть "более правильный" способ, т.к. используется и при создании и при восстановлении утраченной БД.

1) Делаете скулем копию БД.
2) Делаете новую периферийную базу.
3) Меняете в копии настройки.
4) Пишите скрипт по удалению из базы "не её" объектов, восстанавливающий порядок синхронизации.
5) Получаете готовую периферийную базу.
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37554890
alexey-simf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
новая ПБ (база нового магазина) по сути пустая и в ней не должно быть документов, только справочники. так что поддерживать какую-то специальную заготовку в актуальном состоянии нет смысла.

что касается копирования ЦБ и чистки её, то это вряд ли ускорит процесс - более 55 гигов база и удалять почти всё надо, проще пустую дополнить мелочью, чем оставить эту мелочь от такой базы.

в любом случае спасибо)
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37555221
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня много времени не занимало :) В качестве кролика использовался автоматически поднимаемый архив рабочей базы и информация о новой периферийной базе в основную базу заносилась скриптом, а не средствами 1С.

Удалять можно по разному. Например, пересоздать табличку. Хотя НСИ действительно проще перелить из новой.

Я правильно понял, что база объёмом 55 гиг у вас выгружается за 1,5 часа и файл обмена весит меньше двух гиг?
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37555223
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexey-simfстатус новой базы от которой ещё не было ответа, вроде как N
Нет, это статус ещё не созданной периферийной базы.
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37555314
Leierkastenmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexey-simfновая ПБ (база нового магазина) по сути пустая и в ней не должно быть документов, только справочники. так что поддерживать какую-то специальную заготовку в актуальном состоянии нет смысла.

в любом случае спасибо)

Как это нет, когда наоборот есть :) У вас эталонная база практически всегда полностью со всеми необходимыми данными для старта новой периферийной базы. Ей надо только поменять настройки УРБД и она готова к использованию. Метод проверенный годами :)
...
Рейтинг: 0 / 0
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
    #37555966
alexey-simf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за новую полезную инфо.


AHDPЯ правильно понял, что база объёмом 55 гиг у вас выгружается за 1,5 часа и файл обмена весит меньше двух гиг?
да.
изначально для большинства документов стоит миграция "все информационные базы", а в процессе обмена с уже действующей базой фильтрация производится триггером и в базу уходят только свои документы.
в последний раз файл выгрузки был 1,85 гига, но после необходимых манипуляций, ПБ (со справочниками и без лишних документов) в уже развёрнутом виде с учётом CDX (у нас ЦБ - sql, а ПБ - dbf) весит около 150 мб.

P.S. про нелюбовь 1С к ZIP-архивам больше 2 гигов знаю, и про обход этого тоже знаю, но это корявые методы, в сравнении с предложенными в этой теме.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]