#0
by Электроник
Здравствуйте. Прошу помочь в решении одной задачи, над которой бьюсь уже неделю. Заранее говорю, что не прошу писать код за меня, мне нужно только усвоить идею, алгоритм, может, кто-то уже делал подобное. Собственно задача: есть 3 семёрочных базы ТиС, структура идентична, через УРИБ не связаны. В них реализован механизм дисконтных карт (ДК), скидки по которым рассчитываются динамически в зависимости от суммы продаж. Информация о ДК хранится в соответствующем справочнике, суммы продаж накапливаются в регистре остатков при проведении Реализации. Необходимо производить синхронизацию сумм продаж по ДК между всеми тремя базами хотя бы раз в сутки. Обмены данными должны идти в автоматическом режиме и гарантировать, что не будет дважды загружен один и тот же пакет данных. Заранее спасибо за любые мысли по этому поводу.
#2
by Электроник
Из того, что я знаю о МОДе, он перероет всю конфу, а мне нужно синхронизировать только один из разделов торговли.
#3
by Скользящий
Через КД2 можно такое реализовать. Или КД1, что кому ближе. Но это надо осваивать, и долго.
#6
by DalexLad
Ну типа самому реализовать подобие механизма УРБД. Может быть и не очень сложно. 1. Обработка получает DBF с FTP 2. Догружает свой справочник ДК. 3. Выгружает в этот DBF свои новые записи. 4. Следующая машина отрабатывает аналогичный цикл и т.д. Естественно тема интересная, В DBF можно предусмотреть флаг закачен в БД1,БД2,БД3, Сделать назначеное задание, предесмотреть чисить это DBF, в случае закачки и т.д. и т.п. Хотя это все только в плане предложений. Может это и бред :-)
#7
by Электроник
Я знаю КД2. Сам перенос я уже в ней написал. Проблема в автоматизации этого процесса. Если подробнее и на пальцах :), то, например, мы выгружаем из базы 1 продажи за период с 01.02 по 02.02. Выгрузили, запомнили где-нибудь этот период на всякий случай :). А в базу 2 выгрузка не дошла (инета не было). На следующий день какой период выгружать: с 02.02 по 03.02 или с 01.02 по 03.02?
#8
by Mikeware
ну а что тут может быть сложного? принципов всего два: 1)одна база должна быть ведущей. 2) каждый пакет должен иметь идентификатор
#12
by Электроник
Логично. Но что должно содержаться в этом ответе? Только дата конца периода выгрузки?
#14
by Mikeware
а это зависит от условий- либо ты можешь забрать пакет за любой день (тогда тебе надо хранить пакеты и отправлять их по запросам либо ведузая база должна отвечать на запросы - тогда протокол на твое усмотрение либо третий, не упомянутый в вариант - квитирование
#15
by Ёпрст
зато у тебя будет регистрация изменений и перенос чего угодна, откуда угодна и куда угодно.
#17
by Электроник
Тоже верно, но конфа и так переписана вдоль и поперек, идут всякие самописные обмены с 7-ми и 8-ми, и встраивать в нее еще и МОД - боязно как-то.
#20
by vde69
>>>>Базы SQL на одном центральном сервере 1. можно извратится и повесить тригеры 2. можно напрямую получать данные из всех трех баз в реальном времени 3. можно синхранизаровать средствами скуля 4. можно тупо через файл 5. можно при проведении доков писать сразу в три базы ну т.д.
#22
by Электроник
Хотелось бы некий вариант алгоритма, вроде "в пришедшем пакете проверить то-то, в ответе отправить то-то". Нельзя, т.к. из этих трех баз одна - "ведущая", в которой должны агрегироваться суммы продаж из 2-х других баз. А эти 2 базы - УРИБ-овские, обмены хоть и идут часто, но иногда инет в филиале пропадает надолго.
#29
by Электроник
Кстати, интересная идея из : "ты можешь забрать пакет за любой день (тогда тебе надо хранить пакеты и отправлять их по запросам". И на первый взгляд кажется проще, чем реализовывать квитирование.
#30
by GLazNik
в чем проблема? в данном случае нет ведущей (точнее не обязательна). в каждой базе доступна вся информация по ДК. Дублирования информации УРБД можно исключить.
#33
by Электроник
Проблемы как минимум 3: 1) Как отследить изменение реализации задним числом? 2) За какой период делать выгрузку для каждой конкретной базы? Ведь для каждой "ведомой" базы выгрузка должна быть своя, если не по периоду, то уж по суммам продаж - точно. 3)Как бороться с возможным дублированием сумм в загружаемых данных?
#34
by GLazNik
я предлагаю вариант без выгрузки. Вам шашечки или ехать? Конечная цель какая? Определить сумму продаж по ДК. Так и определяйте ее на лету. три запроса к трем базам.
#35
by Электроник
Вариант интересный. А как быть в удаленных филиалах, не имеющих доступа к нужным базам?
#36
by DalexLad
1 - При выгрузке выгружать новые и измененные с момента послелней выгрузки данные. Соответвенно в базах флаги "Выгружен" , "Изменен" 2 - За весь период но с условием "Выгружен" = 0, "Изменен"=1 3 - В случае загрузки Флаг в DBF "Загруженно". На мемент загрузки Загружать если "Загружено"=0;
#37
by GLazNik
:) так началось то все с и ответа на него Используйте МОД. А то смотрю все новые и новые пунктики в условиях появляются.
#40
by Электроник
Всем огромное спасибо за советы! Вы подсказали мне хорошую идею. Пошел развивать ее и писать код.
#42
by Электроник
Не-не-не! Камрад, как можно! Обязательно отпишу, если из идеи что-то жизнеспособное получится. А пока - неохота позориться перед почтенной публикой :).
#43
by Mikeware
хы. дык может, обгадив идею сразу, мы тебе труд и время съэкономим? :-) а может, и посоветуем чего...
#45
by Электроник
Всем привет. Если интересно, вот как я решил сделать. Итак, есть 3 отдельных базы ТиС (не УРИБ). Одна из них будет "центральной", в ней будут аккумулироваться продажи по дисконтным картам и рассылаться остальным двум базам. Во всех 3-х базах создаем справочник, в котором будем хранить дату последней выгрузки для каждой базы-получателя. Выгружать будем по принципу "кому надо - тот возьмет". Т.е. из каждой периферийной базы формируются файлы выгрузки и помещаются в каталоги на FTP-сервере. Затем центральная база загружает ВСЕ файлы, которые найдет в этих каталогах (файлы после загрузки удаляются), сама формирует файлы выгрузки и кладёт в свой каталог на FTP. Периферийные базы загружают предназначенные для них файлы. Цикл обмена закончен. Если данные меняются задним числом, то дата последней выгрузки откатывается на это число, и след. обмен выгрузит новые продажи. Что получаем в итоге: выгрузки/загрузки идут синхронно, не нужно реализовывать квитирование, обмены не чувствительны к разрывам связи с центральным офисом и даже с FTP-сервером (т.к. просто в следующий раз к уже выгруженным добавятся новые файлы). Если по какой-то причине одна из баз не "заберет" свои файлы, то ничего страшного не случится, т.к. это можно будет сделать при следующем обмене (т.к. файлы выгрузок остаются на FTP).
#46
by rs_trade
Делал подобную синхронизацию через 8-ку. 1. Сделал простую конфу на 8, нужные справочники и план обмена. В плане обмена заводишь для каждой базы 7.7 узел. 2. Повесил регламент. Конектимся по COM поочередно к базам на 7.7, забираем изменения и регистрируем изменения для остальных узлов. 3. Потом выгрузка изменений для каждой базы 7.7.
#47
by Электроник
Что-то не понял - при чем здесь 8-ка, если базы все 7-ные. "...Конектимся по COM поочередно к базам на 7.7..." - не подходит, т.к. базы на территориально удаленных серверах.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- v7: BarCode - поворот на 90 градусов
- OFF: А кто работает из 1C с Google Maps JavaScript API V3?
- Почему табличный документ не растягивается при печати?
- v7: Зависает отчет (оперучет, SQL, 1с++)
- УПП 1.3.35 универсальный отчет
- Интервалы дат в запросе в соответствии с таблицей значений...
- winscp копирование конкретного файла
- Свертка периферийного узла РИБ. 1С Розница, Магазин одежды и обуви.
- Не пишется серия затраты в регистр "Затраты на выпуск продукции"
- Настройка Proton IMS-3190 для ТиС
- Запрос список складов в одну строку
- "ОбработкаПрерыванияПользователя()" - как заставить работать?!
- два периода для сравнения показателей в СКД
- Библиотека стандартных подсистем, настройка объектов подсистемы
- Таблица значений выделенные строки
- не получается подключиться к частной ВПН
- Синтаксическая ошибка "ИЗ"
- Как из внешней обработки создать документ НА ОСНОВАНИИ ранее созданного дока???
- УТ11 не могу выбрать вид цены в передача товаров между организациями
- Яблотехника - выбор нищебродов и бомжей. Пруф.