Имя: Пароль:
1C
 
Своя SP в БД.
0 Престарелый Заяц
 
26.06.20
14:07
Добрый день, не сломаю ли я что-то в 1С если добавлю в рабочую базу свои SP, или их лучше вынести отдельно?
1 ДенисЧ
 
26.06.20
14:07
А зачем тебе там нужны свои SP? Нарушаешь лицензию?
2 nicxxx
 
26.06.20
14:09
(1) Тебе не пофиг ли?
(0) Они сотрутся, если ты базу из *.dt перезальешь. А так - норм, можно создавать
3 Престарелый Заяц
 
26.06.20
14:10
(1)
Мне нужно с РС "подливать" данные в Битрикс - по промикам и купонам.
В принципе можно SP хранить где то отдельно, ну только зачем?

(2) На РИБ это никак не повлияет? Вроде нет - структура РИБ хранится в отдельной табличке в метаданных 1С, но там кто его знает.
4 Галахад
 
гуру
26.06.20
14:20
Хм. А что такое SP?
5 Волшебник
 
модератор
26.06.20
14:30
(4) stored procedures - хранимые процедуры базы данных
6 1CnikPetya
 
26.06.20
14:37
(3) А зачем для этого использовать SP?
7 Галахад
 
гуру
26.06.20
14:39
(5) Понятно.
8 fisher
 
26.06.20
14:52
(0) Ничего не сломаешь. Это ни могут сломаться. Поэтому лучше вынести их в служебную базу.
9 Престарелый Заяц
 
26.06.20
22:01
(8) Да - так и сделаю.
10 Конструктор1С
 
27.06.20
08:21
(3) а в чем проблема сделать это средствами 1с?
11 Престарелый Заяц
 
27.06.20
16:01
(10) Как, на API ?
12 1CnikPetya
 
27.06.20
16:38
(11) Вариантов тьма: Web-сервисы, Http-сервисы, если хочешь лить напрямую в базу Битрикса, то по ADODB. Выносить функциональность во вне 1С не очень хорошее решение в части прозрачности и поддержки.
13 Сияющий в темноте
 
27.06.20
16:53
он,поди же,триггеры на стандартные таблицы хочет.
14 PR
 
27.06.20
17:06
(11) В момент записи РС делаешь попытку отправить все в Битрикс
Если не получилось, пишешь в план обмена
Регзадание в 1С периодически пытается отправить все в Битрикс
Ну или Битрикс пытается стукнуться в 1С через веб-сервис и забрать изменения
После успешно1 обработки в Битриксе изменения из плана обмена удаляются

Что ты в своей реализации будешь делать, если в момент изменения 1С Битрикс был недоступен?
15 ДенисЧ
 
27.06.20
17:07
(14) "В момент записи РС делаешь попытку отправить"

Рома... Я говорил тебе уже, что ты не программист, а лох?
Нет?
16 PR
 
27.06.20
17:09
(15) Деня, ты это, иди поучи жену щи варить :))
Я бы в момент записи РС ничего никуда не отправлял ессно, но вдруг сейчас начнутся сопли про онлайн, временные лаги и пр. говно
17 ДенисЧ
 
27.06.20
17:12
(16) Заметьте. Не я предлагал в (14) в момент записи в РС отправлять.
Или ты это от чистого сердца, тогда см (15). Или вредитель.
18 PR
 
27.06.20
17:14
(15) Я не сильно уверен, что в твой мозг правильно зашла моя мысль, поэтому напишу предельно четко для избежания попыток тупых фривольных толкований моих слов
"В момент записи РС делаешь попытку отправить" не означает выполнение этой попытки в коде обработчика события РС "ПередЗаписью"
Имеется ввиду запуск фонового задания, который не будет мешать мне закончить транзакцию с РС

А не рекомендую я такой подход потому, что на момент работы фонового задания еще даже нихрена не понятно, успешна ли вообще попытка записи РС
Поэтому я бы делал в отдельном регзадании, ессно
19 ДенисЧ
 
27.06.20
17:22
"Я не сильно уверен, что в твой мозг правильно зашла моя мысль, поэтому напишу предельно четко для избежания попыток тупых фривольных толкований моих слов"

"В момент записи РС делаешь попытку отправить все"

https://i.ytimg.com/vi/ROMrivAuaeE/hqdefault.jpg
20 PR
 
27.06.20
17:42
(19) "В момент записи РС в отдельном фоновом задании делаешь попытку отправить все"
Так понятнее?
Принципиально то, что событие обработалось уже, а не будет обработано через 3 - 5 - 10 секунд, сколько там будет интервал запуска регзадания
Это, кстати, не отменяет необходимости писать в план обмена, потому что фоновое задание может не запуститься, сбойнуть и пр.
21 ДенисЧ
 
27.06.20
17:53
(20) " В момент записи РС делаешь попытку отправить все"
Теперь не отмажешься.
22 PR
 
27.06.20
18:29
(21) Деня, мнение непрофессионалов меня не интересует
А профессионалы понимают, что в транзакции записи объекта щемиться куда-то в интернет — не вариант от слова совсем, если только уж не осознанно пишешь абсолютно лютый зашкварный говнокод
23 ДенисЧ
 
27.06.20
18:34
(22) То есть ты, "професионал" - прекрасно знаешь, что в транзакции не надо лезть, но совет такой даёшь? Вот и видно, кто тут профессионал, а кто нет, кто просто из франча пришёл.
24 PR
 
27.06.20
18:49
(23) Ты меня утомил, читай предыдущую переписку, я уже все написал
25 ДенисЧ
 
27.06.20
19:39
(24) "мама, я написал, вытри" (с) мой племянник.
26 b_ru
 
27.06.20
20:19
Так-то приличные люди по определению выгрузку в битрикс делают через фоновое задание, а запустить фоновое задание в транзакции не грех ни разу.
27 ДенисЧ
 
27.06.20
20:46
(26) Ну, у меня не получилось. Транзакция была не завершена, а фз работала отдельно. И данных из проведения не видела.
28 PR
 
27.06.20
20:52
(26) Проблема в том, что в момент работы фонового задания:
1. Непонятно, завершилась ли уже транзакция или еще нет, и, если нет, то когда завершится
2. Нет никакой гарантии, что транзакция завершится/завершилась успешно
29 Сияющий в темноте
 
27.06.20
23:36
Ну что вы как маленькие?
В момент записи мы не можем ничего,так как может сработать подписка,которая отменит запись.
Поэтому,в момент записи можно только высказать желание что-то сделать.
Можно в последней подписке стартануть фоновое,которое запросит изменяемые данные в другой транзакции,так  как наша не закрыта,то другая получит ожидание блокировки,и будет ждать.
Но,тут есть большая вероятность,что не дождется,поэтому,повторение через какое-то время никто не отменял.

да,можно запуститб фончик и в момент записи или даже до него,но уже после открытия транзакции,но тут вероятность,что фончик обождется и скукожится,гораздо больше,а при неграмотном проектировании можно нарваться на взаимоблокировку.
30 ДенисЧ
 
28.06.20
04:12
(29) "Можно в последней подписке"
осталось научиться строго задавать порядок срабатывания подписок