| 
    
            
         
         | 
    
  | 
Получение данных сторонней программой из 1С | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        bodri    
     12.09.14 
            ✎
    10:23 
 | 
         
        Есть рабочая база 1С (серверная и куча узлов РИБ) и программа которой нужно по запросу получить реальный остаток одного товара из 1С в режиме реального времени.     
         | 
|||
| 
    1
    
        _fvadim    
     12.09.14 
            ✎
    10:24 
 | 
         
        через COM или web - как больше нраицца     
         | 
|||
| 
    2
    
        Лодырь    
     12.09.14 
            ✎
    10:26 
 | 
         
        (1) webservice универсальнее чем com.     
         | 
|||
| 
    3
    
        ДенисЧ    
     12.09.14 
            ✎
    10:27 
 | 
         
        ком, веб-сервис, прямой доступ к базе - по степени извращённости заказчика     
         | 
|||
| 
    4
    
        _fvadim    
     12.09.14 
            ✎
    10:29 
 | 
         
        (2) согласный, но в случае с com не нужно разворачивать web-сервер и править конфу.     
         | 
|||
| 
    5
    
        Соло    
     12.09.14 
            ✎
    10:31 
 | 
         
        в 7.7 был ещё DDE сервер, извращенно конечно, но бухитоги в екселе можно было посмотреть :)     
         | 
|||
| 
    6
    
        _fvadim    
     12.09.14 
            ✎
    10:31 
 | 
         
        к (3). прямое соединение не ест клиентские лицензии.     
         | 
|||
| 
    7
    
        _fvadim    
     12.09.14 
            ✎
    10:32 
 | 
         
        это как преимущество перед com и web     
         | 
|||
| 
    8
    
        bodri    
     12.09.14 
            ✎
    10:33 
 | 
         
        Подскажите где прочитать про ком.     
         | 
|||
| 
    9
    
        Лодырь    
     12.09.14 
            ✎
    10:41 
 | 
         
        (8) у тебя внешняя программа в какой среде работает?     
         | 
|||
| 
    10
    
        13_Mult    
     12.09.14 
            ✎
    10:42 
 | 
         
        (8) Например тут ) http://msdn.microsoft.com     
         | 
|||
| 
    11
    
        bodri    
     12.09.14 
            ✎
    10:52 
 | 
         
        (9) Если честно даже не в курсе, у нас есть чувачек который её программирует.     
         | 
|||
| 
    12
    
        Лодырь    
     12.09.14 
            ✎
    10:54 
 | 
         
        (11) Ну так ты спроси. А то ты предложишь ему через COM получать данные, а окажется, что он на линуксе живет.     
         | 
|||
| 
    13
    
        bodri    
     12.09.14 
            ✎
    10:57 
 | 
         
        (12) под виндой работает (Win 2008)     
         | 
|||
| 
    14
    
        OnCheck    
     12.09.14 
            ✎
    10:59 
 | 
         
        Я бы предложил вебсервисом.ИМХО самый лучший вариант.
 
        По ресурсам самый незатратный. Перспективный. Ошибиться сложнее  | 
|||
| 
    15
    
        Лодырь    
     12.09.14 
            ✎
    11:00 
 | 
         
        Подумай куда и как он будет подключаться? Будет ли стоять 1Ска на каждой машине с установленной внешней программой? 
 
        Вебсервис гораздо удобнее. Из затрат всего то написание 1 функции + поднять вебсервер.  | 
|||
| 
    16
    
        bodri    
     12.09.14 
            ✎
    12:53 
 | 
         
        (15) 1С стоят на компах со сторонней программой стоять не будет. Веб-сервер вариант для одной базы которая в офисе (серверная), а остальные базы РИБ (65 шт) они стоят локально на точках не вариант.     
         | 
|||
| 
    17
    
        FN    
     12.09.14 
            ✎
    13:00 
 | 
         
        (16) учитывая кол-во баз рекомендую завести отдельное хранилише (sql, web - что удобнее), куда каждая база будет слать по расписанию либо остатки либо остатки на начало периода + движения.
 
        При запросе к этому хранилищу отдавать сами остатки и "момент актуальности" этих остатков. я бы на веб запилил - доступ и из 1С и из браузера. Универсально.  | 
|||
| 
    18
    
        Лодырь    
     12.09.14 
            ✎
    13:00 
 | 
         
        Хм, совсем все запутывается.
 
        Вопрос, у тебя внешняя твоя прога она куда цеплятся то должна? в центральную? или в переферийки? Почему ты решил что вебсервер на переферийных базах не подойдет?  | 
|||
| 
    19
    
        Лодырь    
     12.09.14 
            ✎
    13:01 
 | 
         
        (17) Дык стопудово есть центральная база. Пусть в нее и шлет все и из нее и берет данные.     
         | 
|||
| 
    20
    
        FN    
     12.09.14 
            ✎
    13:07 
 | 
         
        (19) судя по описанию у него что-то типа сети магазинов, где на каждой точке периферийка.
 
        Если часто слать в центр стандартным методом через РИБ - в центре работать будет нереально. (16) если я угадал - то лови еще один вариант: отказать от перифериек, всех загнать в одну базу терминально. Тогда все остатки будут в центре всегда онлайн. Но тут узкое место - блокировки и наличие инета.  | 
|||
| 
    21
    
        дедушка Вах    
     12.09.14 
            ✎
    13:09 
 | 
         
        по штучке.пицот исполнителям/час
 
        ЗЫ может за мес. и управятся справочники причесать к синхронизации  | 
|||
| 
    22
    
        Лодырь    
     12.09.14 
            ✎
    13:23 
 | 
         
        (20) Подождем топикстартера, что он нам поведает.     
         | 
|||
| 
    23
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    13:27 
 | 
         
        (20) а что нереального-то? у меня 60 узлов периодичность раз в полчаса примерно. в центре еще 100 юзеров сидят при этом.     
         | 
|||
| 
    24
    
        Лодырь    
     12.09.14 
            ✎
    13:34 
 | 
         
        (23) не пробовали уменьшить периодичность до 5 минут? у нас живет без проблем. юзеры довольны.     
         | 
|||
| 
    25
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    13:41 
 | 
         
        (24) по некоторым данным (по которым требуется оперативность) так и есть - по отдельному плану обмена. остальное просто не нужно так быстро в ЦО.     
         | 
|||
| 
    26
    
        bodri    
     12.09.14 
            ✎
    14:03 
 | 
         
        (20) угадал
 
        Схема баз у меня такая Рабочая база -> Обменная база -> Периферийные базы такая схема сделана из-за блокировок Вот с периферийных и надо брать актуальную информацию. Но информацию не по всем товарам, а по 1-му. Типа справки. У меня настроена выгрузка 3 раза в день всего остатка. Но руководству этого мало.  | 
|||
| 
    27
    
        bodri    
     12.09.14 
            ✎
    14:27 
 | 
         
        Программер который облаживает прогу предложил вариант обмена файлами, ему якобы проще. в 1С я делаю проверку на этот файл каждые 5 сек. и отдаю другой файл с остатком.
 
        На сколько жизнеспособна данная идея? Мне что-то она не сильно нравится.  | 
|||
| 
    28
    
        ДенисЧ    
     12.09.14 
            ✎
    14:29 
 | 
         
        (27) Облажи своего программера матом.     
         | 
|||
| 
    29
    
        МихаилМ    
     12.09.14 
            ✎
    14:29 
 | 
         
        (27)
 
        пародия на "named pipes".  | 
|||
| 
    30
    
        FN    
     12.09.14 
            ✎
    14:35 
 | 
         
        (27) работать будет.
 
        Хотя я бы сделал так: в конфе (на всех 65-ти базах) подписка на событие при проведении дока - если в доке есть товар, остатки по которому надо отслеживать пишем в базу флаг "нужно обновить данные" (пусть даже константа). Регламентное задание проверяет флаг и при необходимости обновляет остатки во внешней БД. В случае удачного обновления - флаг сбрасывается. Вместо флага даже лучше отдельный регистр/справочник - сразу писать туда товары, по которым нужно обновление. В качестве бд можно сайтик с формочкой на пхп "Номера магазина", "Код товара", "остаток" - сразу есть обратная связь обновили или нет. Можно и просто в скуль писать через адо - тут уже что лучше знаешь - на том и пиши. Можно конечно и файлики на фтп/smb кидать - но тогда еще нужен сервис, которое это будет проверять и импортировать + учесть возможность файловых блокировок/неполной закачки на фтп и тп. ИМХО.  | 
|||
| 
    31
    
        bodri    
     12.09.14 
            ✎
    14:39 
 | 
         
        (30) спс, идея очень интересная.     
         | 
|||
| 
    32
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    14:44 
 | 
         
        (30) а почему сразу из документа фоновое задание не стартовать?     
         | 
|||
| 
    33
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    14:45 
 | 
         
        причем лучше на передзаписью - призаписи регистра - чтобы контролировать еще и отмену проведения и изменение. но все равно фигня какая-то     
         | 
|||
| 
    34
    
        FN    
     12.09.14 
            ✎
    14:46 
 | 
         
        (32) а если связи нет? а если проводят пакетно 100 доков?
 
        проще флаг использовать и порциями слать. (33) не принципиально где - главное в транзакции, что бы при откате флаг вернулся в исходное положение.  | 
|||
| 
    35
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    14:48 
 | 
         
        (34) если нет связи - само себя стартует через паузу :)     
         | 
|||
| 
    36
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    14:48 
 | 
         
        опять же - зачем возвращать флаг? план обмена решает. если нет ничего на обмен - ничего и не передавать     
         | 
|||
| 
    37
    
        bodri    
     12.09.14 
            ✎
    14:54 
 | 
         
        (36) план обмена решает если 1С->1С, а вот если 1С->прога, здесь всё туманно.     
         | 
|||
| 
    38
    
        FN    
     12.09.14 
            ✎
    14:55 
 | 
         
        (36) при чем тут план обмена? то что я советую - это внешнее место хранения данных - не 1С.
 
        Просто выгрузка не по регламенту а по событию+регламент. Ну или если узких мест нет - можно просто по событию - так вообще полный реалтайм. Как именно описать событие на 1С - вопрос вторичный.  | 
|||
| 
    39
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    15:00 
 | 
         
        (37) планы обмена заруливают в любом случае не-онлайн обмена. в случае онлайн - заруливают вебсервисы, но тут стабильность и скорость канала важна, а то тормозить будет.
 
        (38) план обмена + регл задание, которое по этому плану обмена генерит запросы в вашу внешнюю прогу раз в 10 секунд, допустим.  | 
|||
| 
    40
    
        FN    
     12.09.14 
            ✎
    15:06 
 | 
         
        (39) ты предлагаешь использовать план обмена как индикатор необходимости выгрузки?
 
        Тут есть трабл - например создали документ расхода на 10 единиц - в план очередь на обмен попадает этот документ - регламентное задание обновляет остатки. потом документ снимают с проводки - очередь на обмен не меняется - документ все равно нужно отправлять - соответственно регламентная процедура не выполняется - имеем неправильные остатки во внешней бд. То есть нужна какая-то чистка плана обмена при выполнении регламентного задания. Мне проще регистр/справочник завести.  | 
|||
| 
    41
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    15:07 
 | 
         
        (40) и как это решит константа? провели документ - константа взвелась. провели другой докумнет - она осталась. Распровели первый документ - что делать с константой?     
         | 
|||
| 
    42
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    15:09 
 | 
         
        а про "чистку" плана обмена (одна строка кода вообще-то) написано, например, в проф. разработке неплохо. Да и вообще про организацию обменов/интеграций с внешинми системами     
         | 
|||
| 
    43
    
        FN    
     12.09.14 
            ✎
    15:09 
 | 
         
        (41) при любом изменении остатка константа "взводится", а сбрасывается только при удачной выгрузке. Просто как двери.     
         | 
|||
| 
    44
    
        Fragster    
     гуру 
    12.09.14 
            ✎
    15:10 
 | 
         
        (43) и чем план обмена тогда не устраивает?     
         | 
|||
| 
    45
    
        FN    
     12.09.14 
            ✎
    15:10 
 | 
         
        вообщем это не принципиально - кому с чем удобнее работать - то тем и пользуется. Хоть файлик на диске Це создавать.     
         | 
|||
| 
    46
    
        FN    
     12.09.14 
            ✎
    15:11 
 | 
         
        (44) в контексте (42) всем устраивает.
 
        см (45)  | 
|||
| 
    47
    
        Garykom    
     гуру 
    12.09.14 
            ✎
    16:59 
 | 
         
        (0) дык все просто заводим спецпользователя в базу при запуске от которого запускается процедурка и выливает остатки куда нуна ))
 
        из сторонней программы остается только запустить 1С с определенным пользователем и дождаться ответа...  | 
|||
| 
    48
    
        Garykom    
     гуру 
    12.09.14 
            ✎
    17:00 
 | 
         
        (47)+ работает где угодно, никаких сервисов не нуна писать и через com обращаться, все просто и прозрачно
 
        из минусов тока тормоза на запуск 1С  | 
|||
| 
    49
    
        SUA    
     12.09.14 
            ✎
    18:14 
 | 
         
        (48) из минусов рбд тут
 
        (0) информация по 1 конкретному товару, а на остальные пофигу... жестоко рег задания на старых файловых базах это тоже зло проще тогда наверное обработчик ожидания и глобальную переменную (или параметр сеанса) прикручивать к пользователям: изменил остаток - выгрузи, и при начале/завершении работы тоже для надежности  | 
|||
| 
    50
    
        Garykom    
     гуру 
    12.09.14 
            ✎
    18:42 
 | 
         
        (49) причем тут минус по РБД не понял?     
         | 
|||
| 
    51
    
        APXi    
     12.09.14 
            ✎
    19:08 
 | 
||||
| 
    52
    
        FN    
     12.09.14 
            ✎
    19:11 
 | 
         
        (51) тут скорее наоборот - куча баз и одно место просмотра остатков     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |