#0
by dwarrior2
Добрый день господа! Есть центральная база(ЦБ), есть периферийные базки(ПБ). Есть справочник, допустим "Контрагенты"(КА). Признак миграции - "Место создания и центр". Т.е. КА, заведенные в ЦБ, остаются в ней, КА, заведенные в периферийной базе, остаются там и мигрируются в ЦБ. Теперь вопрос - завел в ЦБ КА, хочу его насильно выгрузить в ПБ №5(например). Как это можно сделать ИЗ КОДА 1С? Вариант с ручной правкой 1supdts я знаю, но нужен вариант в коде 1С. Ведь 1С как-то сама делает это, мож есть какие-нибудь недокументированные функции?
#2
by mishaPH
можно так. например ты заранее в каждой базе создаешь пустышки справочников.. все они приходят в центр и складываются в спец папку. При необходимости из любой пустышки принадлежащей определенной базе делаешь то, что надо и вуаля. Это справедляво для любых объектов.
#4
by ДенисЧ
РегистрацияИзменений(<ВклВыкл>) Синтаксис:РегистрацияИзменений(<ВклВыкл>) Назначение: Включить / выключить режим регистрации изменений объекта Возвращаемое значение: Функция возвращает установленный до ее вызова режим. Параметры: <ВклВыкл> - (Число) Число 1 если изменения должны регистрироваться, 0 - если изменения не должны регистрироваться. Если параметр не указан, то режим не изменяется. Замечание: Особенностью вызова данного метода является то, что он действует с момента своего вызова и до перепозиционирования объекта. Т.е., его следует вызывать после того как объект выбран, и до записи изменений. После следующего позиционироваия объекта режим снова будет установлен в соответствие с режимомв метаданных.
#10
by mishaPH
+9 кроме того. в дальнейшем штатная перезапись данного элемента в ЦБ не повлечет его отправку в ПБ. И вообще не понятно, как система среагирует, если такой элемент перепишут в ПБ.
#11
by dwarrior2
rs_trade, А если ЦБ на DBF? Доступ к 1supdts не получишь.... ДенисЧ Это в 7.7 такая функция? не могу найти в синтакс-помощнике...Где можно про нее почитать?
#12
by Ёпрст
РегистрацияИзменений Синтаксис: РегистрацияИзменений(парам) Параметры: Парам (число) 1 - регистрировать изменения, 0 - не регистрировать изменения. Если параметр не указан, то регистрация не изменяется. Назначение: Включить или выключить регистрацию изменений для конкретного объекта. Замечание1 Особенность вызова данного метода - он действует с момента своего вызова и до перепозиционирования объекта. Его нужно вызывать после позизионирования объекта, но до записи изменений. После следующего позиционирования объекта режим снова будет установлен в соответствии с режимом, выбранном в метаданных (т.е. установленный для предыдущего позиционирования режим сбрасывается). Замечание2 Метод РегистрацияИзменений доступен только для объектов типа "Справочник" и "Документ", созданных функцией "СоздатьОбъект". Возврат: Число - 1 - да, регистрация производится. 0 - нет. Возвращается установленный до ее вызова режим. Пример:
#13
by mishaPH
1. да все можно, но см и последствия. 2. тебе это не поможет. Это всего лишь флаг при программной перезаписи для объекта регистрировать его изменения или нет
#14
by dwarrior2
mishaPH все будет нормально:) я уже много раз выгружал объекты, созданные в ЦБ в ПБ(через правку 1supdts). ДА, после этого изменения в ПБ этого объекта не вернутся в ЦБ, но хоть что-то...
#15
by dwarrior2
так мне надо РегистрацияИзменений, да притом еще указать в КАКУЮ базу выгрузить этот объект...
#16
by mishaPH
эх. ну жги дальше. только потом не жалуйтесь на глюки и нестыковку. когда у тебя манагер изменит в ЦБ ИНН или еще какой реквизит например сумму кредита. а в ЦБ об этом знать не будут. Такие примочки могут и не сработать по каким-то причинам.
#20
by dwarrior2
а тогда еще вопрос, из-за которого и возник собсвтенно этот... Дело в том, что в ПБ заводили КА нормально, но в какой-то период времени КА почему-то заводились без признака ИБ. Ну т.е. КА №1 имел ID "1005" (база 005), второй "2005" и т.д. А потом вдруг появляются КА с ID "3 ", "4 ", потом снова "5005", "6005" и т.п. Как будто 1С "забывает" дописывать в ID код базы-родителя. Кто с этим встречался? можно это исправить?
#22
by dwarrior2
а с пустышками - поздно:) да и мне нужно довыгрузить СУЩЕСТВУЮЩИЙ объект, а не ноый
#23
by mishaPH
С таким не встречался глюком. Не может база забыть что она в УРБД. А что ты под ID понимаешь? Код элемента в справочнике? И что? создай таким образом новый, сдублируй со старого. замени в доках на новый заменой.
#26
by dwarrior2
mishaPH попробую вариант с пересозданием элемента справочника и его заменой в документах, делать нечего.. Просто надеялся, что найду в API 1C недокументированную функцию, которой собвственно и делается такая операция. Ведь в SQL-базе есть специальная процедура _1sp_RegisterUpdate, которая все это делает, я думал есть аналог в DBF...ведь 1С делает это действие(регистрацию изменений) вне зависимости от платформы..
#27
by mishaPH
нет к сожалению. 1с не стали развивать в 7ке штатные средства. Ибо 8ка нафиг уже не нужна была бы.
#28
by Mikeware
Слишком смелое заявление для человека, давно работающего с УРБД Так не бывает. Если только над базой не извращались. Хоть ДБФ, хоть сиквел - способ принудительной выгрузки туда, куда выгружаться не должно, только один - через доступ в таблицу 1supdts.
#29
by dwarrior2
MikeWare Бывает, к сожалению...КА создавали вместе с документами. Так вот КА имеет ID"3 ", а тут же созданные документы по этому же КА - ID "25005"(с кодом ИБ). Насчет однозначности правки 1supdts - если база SQL, 1C создает себе процедуру _1sp_RegisterUpdate, с ее помощью можно выгрузить любой объект в любое время(имею ввиду работающий юзеров) в любую базу. Неужели в dbf-версии нет аналога?
#30
by Mikeware
в случае сиквельной версии 1с перекладывает задачу регистрации на сервер БД с помощью этой процедуры. а файловая 1с сама по себе является "сервером БД". Можешь, конечно, отловить вызов функции регистрации.... Только вот давно бы взял и сделал добавление записи. Спрашиваешь дольше...
#33
by mishaPH
где-то когда-то встречал обработку по работе с 1supdts для DBF но все это не штатно. да и тебе самому сделать не сложно. Добавить запись в него о выгрузке определенного элемента.
#35
by dwarrior2
MikeWare "взял и сделал добавление записи." - имеешь ввиду 1updts? а как получить к ней доступ в DBF-версии? Она ж заблокирована для изменений, потому что ее открывает 1С...Или как-то можно?
#36
by Cap_1977
Описанная тобой ситуация - не глюк. Объекты с ID "3 ", "4 " были созданы в БД ДО того как сделали распределенку.
#37
by Mikeware
АДО. примеры смотри на форуме 1с++ Анриал. Это периферийная база. она не может быть нераспределенной.
#38
by mishaPH
оба на. а как они туда попали? или ПБ когда-то была не цб? Вообще есть вариант, когда ЦБ была еще не распределенка, насоздавали там что-то. Затем сделали УРБД а у справочника миграция была "все". Но вот я не уверен, что в этом случае система действующим элементам не присвоит "префикс" ЦБ
#39
by dwarrior2
не спорьте, объекты с ID "3 " и "4 " ТОЧНО БЫЛИ СОЗДАНЫ в ПБ. Проверено. Как доказательство - ведь объекты 1 и 2, 5 и 6 имеют префикс 005 и они находятся в одном числовом ряду (1,2,3,4,5,6).
#42
by dwarrior2
MikeWare да нет особого желания (и времени) разбираться почему они там так появились...Есть необходимость исправить:) Намекни пожста в двух словах, куда копать - в сторону доступа к DBF через АДО даже при открытой 1С или в сторону работы с АДО не открывая 1C? спасибо всем участвующим! "Ваше мнение очень важно для нас"(с) :)))
#43
by Mikeware
да "хоть боком, хоть раком". При закрытой 1с сделать быстрее, чем объяснять - объект xbase. а при открытой (в немонопольном режиме ) - через фокспрошный драйвер, за инфой - на форум/доку 1с++...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- А можно создать программно новый объект метаданных?
- Как можно программно изменить размер шрифта объекта "Текст" в отчете?
- Как с УРБД сделать не УРБД?
- v7: Как программно зарегистрировать документ в последовательности?
- Хочу запретить изменение документов, но разрешить изменение событий.
- Программно добавить обработчик события к программно добавленному элементу формы
- Как перегнать программно печатную форму в формат JPG
- v8: СКД: программно добавить системное поле
- Как программно установить владельца программно созданной колонке
- Изменение и создание предопределенных элементов программно
- планы обмена, как программно зарегистрировать удаление строки регистра сведений?
- Подскажите как программно открыть форму документа и программно нажать на ОК?
В этой группе 1С
- ЗУП. нерезиденты.
- Фактическая дата создания документа 8.1 ЗУП
- Вопрос по ЗУП (Хотим объединить должности в спр-ке - как быть с сылками ...)
- Как отключить фоновое событие по получению почты ?
- Чо та тупняк какойта Windows Sockets - 11001(0x00002AF9). этот хост неизвестен
- Братья пинганите меня?
- Как в обработке в табличной части создать колонку с типом список значений
- БП: Приходник делает две проводки вместо одной (мистика?)
- Регламентный запуск батника средствами 1С
- Интерактивный выбор значения из таблицы (списка)
- v7: Как перебрать реквизиты счета через метаданные?
- ПриПолученииДанныхОтПодчиненного
- Как запретить пользователю сменить группу при выборе элемента из справочника
- ЗУП "Отражение зарплаты в р.у." НЕТ ПРОВОДОК 69.02.1(2) ЕНВД ПОЧЕМУ?
- Выбор в справочнике по нескольким реквизитам
- Привязка элементов на форме
- А правда что 7.7 сняли с производства и уже практически невозможно купить?
- Учет фактических данных по бюджетам УПП 17 релиз
- Средний процент наценки
- Ораклистам: как выполнять пакетный запрос с помощью ADODB.Command?