Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
имеем: 1С 7.7 SQL Уже существует несколько десятков периферийных баз. Посредством использования триггера в таблице "_1SDWNLDS" по действию "Delete" была настроена выгрузка документов так, что конкретная база получает только свои документы независимо от места создания этих документов (по общему реквизиту документа, равного коду ИБ, для которого документ предназначается), т.е. замена кривой схемы "место создания и центр". При этом для документов стоит метод "все информационные базы", а триггер "отрезает" лишнее. Всё хорошо, но данный триггер не работает при первичной выгрузке, т.е. при создании новой периферийной базы. Раньше проблема решалась другим (кривым) способом, но надо от такой кривизны избавляться. Вопрос: состояние какой таблицы и на какое действие следует отслеживать, чтобы использовать триггер для фильтрации первичной выгрузки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2011, 15:37 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
alexey-simf, Думаю, что таким образом задачу не решить. А решить с противоположной стороны: - первичную выгрузку из центральной или отфильтровать, или создать самостоятельно (никаких данных, только таблицы управления обменом, да 1cv7.md -структура файла очень проста) - заполнить нужными объектами _1SDWNLDS (все справочники, все константы, нужные документы) - и сделать первую выгрузку изменений от ЦБ к ПБ. Можно даже не "нужными", а всеми объектами _1SDWNLDS заполнить. Триггер - он ведь отфильтрует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2011, 15:50 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
что-то я не всё могу понять, потому уточню по схеме, которую использовал до этого. в конфигураторе добавлял новую ПБ. делал первую выгрузку. в 1Cv77.dat убирал почти всё, оставлял только ключевую информацию по базе, т.е. буквально несколько первых строк файла. делал загрузку в ПБ, а потом ответную в ЦБ. из любой действующей ПБ копировал dbf-файлы справочников (после одновременной выгрузки в две упомянутые ПБ) в ЦБ перезаписывал константы, чтобы они в ближайшей же выгрузке ушли в новую ПБ. после чего в ЦБ, уже в рабочем режиме, создавались документы, которые после фильтрации триггером уходили в новую ПБ. все действия занимали буквально 5 минут, проблема лишь в том, что первая выгрузка в ПБ длиться около 1,5 часов, хотя из неё нужен лишь кусочек файла 1Cv77.dat и 1Cv77.MD плюс понимание 1Синой, что таки прошла первая выгрузка в новую ПБ и что уже можно принимать ответные выгрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2011, 17:14 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
похоже мне надо вручную добавить запись в таблицу _1SDBSET, придумав свой DBUUID и заполнив остальные поля. статус новой базы от которой ещё не было ответа, вроде как N вопрос только в том, какие могут быть подводные камни, какие таблицы ещё задействованы в этом процессе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2011, 17:26 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
alexey-simf, Осталось научиться создавать файл с "пустой" выгрузкой самостоятельно, минуя долгую выгрузку. разобраться в формате такого файла и в том, чем отличается заголовок "невыгруженной" базы от "выгруженной" - дело пары-тройки десятков минут, если упражняться на модели базы (центральная и пара периферийных с пустой конфигурацией). А вот фокус с подменой файлов справочников - не очень хорош. Если уж использовать такое для файловой семерки - то подменять справочники+1scont+1sblob в комплекте. Тогда и константы перезаписывать не надо - только подправить значения немигрирующих. Потому что у справочников могут быть и периодические реквизиты, и строки неограниченной длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2011, 17:31 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
спасибо за помощь, буду играться на тренировочных базах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2011, 18:21 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
alexey-simf, Как вариант один раз сделайте эталонную периферийную ИБ, в которую будут попадать только общие для всех реквизиты, поставьте ее на постоянный обмен, чтобы она была всегда в актуальном состоянии. А потом просто делайте все новые периферийные базы из нее следующим образом: руками создаете запись в _1sdbset в ЦБ, создаете так, чтобы 1ска сразу понимала, что база уже рабочая и выгрузка в нее была, копируете эталонную ПБ, в ней в таблицах 1sdbset и 1ssystem меняете нужные поля, чтобы она соответствовала новой созданной ПБ, в ЦБ SQL-скриптами в _1supdts записываете все объекты, которые должны полететь в эту базу (если такие вообще на момент создания есть), для верности еще дублируете содержимое _1supdts, которое было для эталонной ПБ, для новой ПБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 13:20 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
Есть "более правильный" способ, т.к. используется и при создании и при восстановлении утраченной БД. 1) Делаете скулем копию БД. 2) Делаете новую периферийную базу. 3) Меняете в копии настройки. 4) Пишите скрипт по удалению из базы "не её" объектов, восстанавливающий порядок синхронизации. 5) Получаете готовую периферийную базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 19:05 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
новая ПБ (база нового магазина) по сути пустая и в ней не должно быть документов, только справочники. так что поддерживать какую-то специальную заготовку в актуальном состоянии нет смысла. что касается копирования ЦБ и чистки её, то это вряд ли ускорит процесс - более 55 гигов база и удалять почти всё надо, проще пустую дополнить мелочью, чем оставить эту мелочь от такой базы. в любом случае спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 19:57 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
У меня много времени не занимало :) В качестве кролика использовался автоматически поднимаемый архив рабочей базы и информация о новой периферийной базе в основную базу заносилась скриптом, а не средствами 1С. Удалять можно по разному. Например, пересоздать табличку. Хотя НСИ действительно проще перелить из новой. Я правильно понял, что база объёмом 55 гиг у вас выгружается за 1,5 часа и файл обмена весит меньше двух гиг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 05:43 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
alexey-simfстатус новой базы от которой ещё не было ответа, вроде как N Нет, это статус ещё не созданной периферийной базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 05:51 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
alexey-simfновая ПБ (база нового магазина) по сути пустая и в ней не должно быть документов, только справочники. так что поддерживать какую-то специальную заготовку в актуальном состоянии нет смысла. в любом случае спасибо) Как это нет, когда наоборот есть :) У вас эталонная база практически всегда полностью со всеми необходимыми данными для старта новой периферийной базы. Ей надо только поменять настройки УРБД и она готова к использованию. Метод проверенный годами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 09:00 |
|
||
|
1С 7.7 SQL первая выгрузка периферийной БД. куда запихать триггер?
|
|||
|---|---|---|---|
|
#18+
спасибо за новую полезную инфо. AHDPЯ правильно понял, что база объёмом 55 гиг у вас выгружается за 1,5 часа и файл обмена весит меньше двух гиг? да. изначально для большинства документов стоит миграция "все информационные базы", а в процессе обмена с уже действующей базой фильтрация производится триггером и в базу уходят только свои документы. в последний раз файл выгрузки был 1,85 гига, но после необходимых манипуляций, ПБ (со справочниками и без лишних документов) в уже развёрнутом виде с учётом CDX (у нас ЦБ - sql, а ПБ - dbf) весит около 150 мб. P.S. про нелюбовь 1С к ZIP-архивам больше 2 гигов знаю, и про обход этого тоже знаю, но это корявые методы, в сравнении с предложенными в этой теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 13:32 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=37555221&tid=1520820]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 353ms |

| 0 / 0 |
