Имя: Пароль:
1C
1С v8
HTTP-сервис дружит с COMcon?
0 AlekseiYunni Podavvan
 
10.03.22
11:33
HTTP-сервис идет в общий модусь с com соединением. В итоге : Ошибка при вызове конструктора (COMObject).
В какую сторону смотреть?
1 Галахад
 
гуру
10.03.22
11:39
А без соединения, на сервере работает?
2 AlekseiYunni Podavvan
 
10.03.22
11:46
Работет
3 acht
 
10.03.22
12:03
(0) А после "Ошибка при вызове конструктора (COMObject)" что написано?
4 AlekseiYunni Podavvan
 
10.03.22
12:08
(3) Ничего. Пишет модуль, строку + Ошибка при вызове конструктора (COMObject)
5 AlekseiYunni Podavvan
 
10.03.22
12:08
это в браузере
6 acht
 
10.03.22
12:15
(5) > в браузере
В журнал регистрации 1С, я так понимаю, ты даже не заглядывал
7 AlekseiYunni Podavvan
 
10.03.22
12:19
8 AlekseiYunni Podavvan
 
10.03.22
12:19
тут еще меньше инфо
9 Мимохожий Однако
 
10.03.22
12:25
Мало информации. Партизанен? )
10 AlekseiYunni Podavvan
 
10.03.22
12:27
(9) То что по теме, секретов почти нет
11 AlekseiYunni Podavvan
 
10.03.22
12:28
(9) Какую инфо предоставить?
12 Мимохожий Однако
 
10.03.22
12:31
(11) конфигурация, код.
см. правила форума или высылай кофе для гадания
13 AlekseiYunni Podavvan
 
10.03.22
12:33
(12) Прошу прощения. УПП 1.3.173.3
14 AlekseiYunni Podavvan
 
10.03.22
12:33
СтрокаСоединения = ""+"Srvr=""app1cfast:1742"";Ref=""Мельник30"";Usr=Администратор;Pwd=книгапокупок";
    Ком = Новый COMObject("V83.COMConnector");
    Соединение=Ком.Connect(СтрокаСоединения);
    Запрос = Соединение.NewObject("Запрос");
    Запрос.Текст ="ВЫБРАТЬ
                  |    ВЫБОР
                  |        КОГДА ХозрасчетныйОстатки.Субконто1.Код = ""00000008771""
                  |                ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000008770""
                  |            ТОГДА ""Пшеница""
                  |        ИНАЧЕ ХозрасчетныйОстатки.Субконто1.Наименование
                  |    КОНЕЦ КАК Номенклатура,
                  |    СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК Количество,
                  |    ХозрасчетныйОстатки.Организация.Наименование КАК Организация
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ТекДата, Счет.Код = ""43"", , ) КАК ХозрасчетныйОстатки
                  |ГДЕ
                  |    (ХозрасчетныйОстатки.Субконто1.Код = ""00000008614""
                  |            ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000011731""
                  |            ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000008710""
                  |            ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000008746""
                  |            ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000008770""
                  |            ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000008771"")
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ХозрасчетныйОстатки.Организация.Наименование,
                  |    ВЫБОР
                  |        КОГДА ХозрасчетныйОстатки.Субконто1.Код = ""00000008771""
                  |                ИЛИ ХозрасчетныйОстатки.Субконто1.Код = ""00000008770""
                  |            ТОГДА ""Пшеница""
                  |        ИНАЧЕ ХозрасчетныйОстатки.Субконто1.Наименование
                  |    КОНЕЦ";  
    
    Запрос.УстановитьПараметр("ТекДата", КонецДня(ТекущаяДата()));
    Выборка = Запрос.Выполнить().Выгрузить();
    ТЗПоМестам = Новый ТаблицаЗначений;
    ТЗПоМестам.Колонки.Добавить("Организация");
    ТЗПоМестам.Колонки.Добавить("Номенклатура");
    ТЗПоМестам.Колонки.Добавить("Количество");
    //Стр = ТЗПоМестам.Добавить();
    Для Каждого Строка Из Выборка Цикл
        Стр = ТЗПоМестам.Добавить();
        Стр.Организация = Строка.Организация;
        Стр.Номенклатура = Строка.Номенклатура;
        Стр.Количество = Строка.Количество;
    КонецЦикла;
15 AlekseiYunni Podavvan
 
10.03.22
12:35
Функция PoMestamПолучить(Запрос)
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.Заголовки.Вставить("Content-type", "application/json");
    СтрокаJSON = ЦТРИТ_ПодпискиНаСобытия.КультурыПоМестамХранения();
    Ответ.УстановитьТелоИзСтроки(СтрокаJSON);
    Возврат Ответ;
КонецФункции
16 Мимохожий Однако
 
10.03.22
12:37
Попробуй для начала зарегистрировать через командную строку от имени администратора comcntr.dll
17 AlekseiYunni Podavvan
 
10.03.22
12:38
Зарегистрировал.
18 Мимохожий Однако
 
10.03.22
12:39
В отладчике не какой строке спотыкается?
19 AlekseiYunni Podavvan
 
10.03.22
12:40
(18) Ком = Новый COMObject("V83.COMConnector");
20 Мимохожий Однако
 
10.03.22
12:52
Код выполняется на сервере или на клиенте?
21 Галахад
 
гуру
10.03.22
12:53
(2) Точно на сервере?
22 Мимохожий Однако
 
10.03.22
12:54
Попробуй воткнуть
Попытка
         Возврат V83COMCon.Connect(ПараметрыПодключенияИБ);
Исключение
         Сообщить(ОписаниеОшибки());
         Возврат Неопределено;
КонецПопытки;
23 AlekseiYunni Podavvan
 
10.03.22
12:54
Точно на сервере.
24 AlekseiYunni Podavvan
 
10.03.22
12:54
Спасибо, попробую
25 AlekseiYunni Podavvan
 
10.03.22
12:55
Позже отпишусь, рабочий день все. продолжу с дома
26 Мимохожий Однако
 
10.03.22
12:56
Базы файловые или клиент-серверные?
27 OldCondom
 
10.03.22
13:05
СтрокаСоединения = ""+"Srvr

То есть если руками вызвать эту функцию, то работает? Разве + вначале строки не вызовет ошибки?
28 OldCondom
 
10.03.22
13:12
И раз уж внедряете http сервисы, так может и в базе Мельник30 сделать http сервис по возврату этих остатков?
29 AlekseiYunni Podavvan
 
10.03.22
13:44
(27) Работает (28) Собираю данные из 7 баз в один отчет
30 AlekseiYunni Podavvan
 
10.03.22
13:45
(26) Клиент - серверные
31 OldCondom
 
10.03.22
13:54
И кто это хочет видеть остатки ГП прямо на текущий момент по всем базам?
Создай регистр, там храни свои остатки орг/ном/колич. Пусть эти 7 баз пишут туда остаток в разрезе дня.В базах в модуле хощрасчетного регистра (к примеру. либо подписки и тд.) при изменении 43 счета вызывай http сервис приемника, пиши туда обновленные данные. Это ересь полная через com делать. Да и вообще надо сидеть и думать над такой задачей, а то еще и к корп версии придете со слиянием баз.
32 Галахад
 
гуру
10.03.22
13:55
Проверь с помощью ИР:
33 Галахад
 
гуру
10.03.22
13:55
34 OldCondom
 
10.03.22
13:56
пойду что ли попробую com с такой странной строкой соединения. Слабо верится, что без ошибки такое запустит
35 lodger
 
10.03.22
13:57
(23) посмотри имя юзера от которого работает htез-сервис и разреши ему COM-объекты.
36 AlekseiYunni Podavvan
 
10.03.22
14:00
(31) мониторинг на сайте по холдингу
37 AlekseiYunni Podavvan
 
10.03.22
14:01
(35) смотрю
38 OldCondom
 
10.03.22
14:20
(36) а кому пришла в голову такая затея, как com  соединения? Ладно что он вообще устарел, так тут еще одновременно на 7 баз данные. Да раздайте вы уже odata на худой конец и дергайте эти остатки. Вот сейчас затык тупо с соединением, а дальше пойдут обновления платформ, отмена windwos(санкции, все дела), луна в козероге и т.п.
Имхо, нет смысла стратить свой ресурс, чтобы завести такой механизм, там изъянов куча.
Получается сайт дергает 1с, которая дергает по com другие 1с. Может сайт будет дергать какое то обновляемое хранилище?
39 AlekseiYunni Podavvan
 
10.03.22
14:22
(35) Там все норм. если убрать сом то все работает, если не по Http сформировать отчет, тоже работает, связка HTTP и COM не взлетает
40 lodger
 
10.03.22
14:23
(38) ты щас Корпоративную Шину изобретешь.
41 AlekseiYunni Podavvan
 
10.03.22
14:25
(38) вы правы. думаю к этому тоже придём.
42 OldCondom
 
10.03.22
14:46
у меня нет под рукой клиент сервера, тестил на файловой. строка "+file"""тралала""" не работает. без плюса все ок. Вот тебе сложно для теста убрать из СтрокаСоединения = ""+"Srvr=""app1cfast:1742""; этот плюс?
43 AlekseiYunni Podavvan
 
10.03.22
14:54
(42) монописуально
44 AlekseiYunni Podavvan
 
10.03.22
14:55
ругается на вызов
45 AlekseiYunni Podavvan
 
10.03.22
15:15
(22) Ошибка = ""
46 lodger
 
10.03.22
16:28
(37) что насмотрел?
47 AlekseiYunni Podavvan
 
10.03.22
16:49
(46) см.39
48 lodger
 
10.03.22
17:16
(47) в (39) какая-то околесица, которая никак не связана с правами пользователя ОС на запуск ком-объектов.
49 ДедМорроз
 
11.03.22
00:05
Попробуйте выполнить создание com-объекта от имени пользователя,от которого выполняется web-сервер.
50 ДедМорроз
 
11.03.22
00:06
Также проверить отсутствие галочки защита от опасных действий у пользователя 1с,под которым выполняется обработка web-запроса.
51 AlekseiYunni Podavvan
 
16.03.22
19:40
(49) все работает под тем-же пользователем
52 AlekseiYunni Podavvan
 
16.03.22
19:41
более того если через веб запускаю базу и формирую отчет, он работает
53 AlekseiYunni Podavvan
 
16.03.22
19:41
добавляю в адрес http соединение и опять Ошибка при вызове конструктора (COMObject)
54 lodger
 
17.03.22
11:50
(51) меня тоже юные админы убеждали, что они точно и верно сообщили мне пользака сервиса агента 1с. что это 1с глючит и надо воображать костыли, которые не нужны.
55 Жан Пердежон
 
17.03.22
12:25
у модуля какие галочки стоят?