|
Совершенно непонятная проблема в модуле проведения документа 1С8! | ☑ | ||
---|---|---|---|---|
0
Влад_Савин
20.06.24
✎
14:37
|
Задача - слегка поправить движение по Рег.накопления при проведении документа (1С8 УТ10, доработанная).
Делал такое не единожды - в отладчике, модуль объекта, пошагово по Ф10 и Ф11, выводя в табло Коллекцию Движения. Как только изменилось - находил процедуру, и место в ней, где проводки, там вписывал требуемый алгоритм. Ок! В этот раз - при отладке НИЧЕГО НЕ ПОЯВЛЯЛОСЬ! Доходил до конца процедуры Обработка проведения, в Движениях по данному Регисту ПУСТО, до самого конца - ВСЮ процедуру прошел по Ф11, движения пустые, вылет в ПОльзовательский (все отработало!), смотрю в меню Перейти- Движения по регистрам - там движения ЕСТЬ. ОТКУДА??? Ладно, добавил в конфу Подписки на события - При записи документа, При проведении документа - тоже, результат ноль! Добавляю Подписку на событие - При изменении записи Регистра (того самого что мне нужен) - уж сейчас точно поймаю, из точки останова взглянув на стек вызовов. ФИГ ВАМ! В точку (в процедуре обработчик подписки) приходит на этапе - удалить движения документа (самое начало перепроведения). Все Движения в ДокументОбъект становятся пустыми. И далее - в обработчик подписки (должный запускаться при записи новых значений) НЕ ПОПАДАЕТ. ЭТО ЧТО ВООБЩЕ ТАКОЕ? Никогда такого не видел в 1С8 !! Что я делаю не так?? Где может еще быть - запись новых движений в Регистр? (Бизнес-процесса нет. Да и Регистратор указан - именно этот документ! Да и если бы менялось из другого документа - подписка на событие должна ведь отработать?) |
|||
1
Волшебник
20.06.24
✎
14:39
|
Паника?
Спокойствие! Только спокойствие! Дело-то житейское... |
|||
2
Влад_Савин
20.06.24
✎
14:44
|
Так простите, проблема в том что я вообще не понимаю, ЧТО ЭТО ТАКОЕ! Ну как бы 2х2 оказалось 5. А у меня опыт в 1С8 10 лет(с самого начала в 1С франчайзи, затем с 2017 решил что стабильность лучше и работаю там же где сейчас). Работаю в совместной (с иностранцами) фирме, штатный прогер 1С8, и за 7 лет мной были довольны - это о чем-то говорит?
Но на меня уже менеджеры давят "когда будет готово". А это в первый раз что я даже не знаю теперь, как подступиться. Перепробовал все что знал и умел! |
|||
3
Valdis2007
20.06.24
✎
14:46
|
(0) отложенное проведение фоновым заданием
|
|||
4
Смотрящий
20.06.24
✎
15:01
|
(0) Кэш развалился. Делов-то...
|
|||
5
Мультук
20.06.24
✎
14:50
|
(2)
1) Я бы в модуле регистра в "ПередЗаписью" написал Сообщить("Привет мир!"); и поставил точку останова. Затем включил бы "Замер производительности", провёл и поискал в результатах "Привет мир" 2) Я не знаю умеет ли УТ10 в расширения, но ...стоит проверить 3) Если регистр Типовой и документ Типовой, то наверное стоит написать их имена 4) Возможно стоит почистить кэш |
|||
6
Ненавижу 1С
20.06.24
✎
14:52
|
может через фоновое задание пишется?
|
|||
7
Влад_Савин
20.06.24
✎
14:58
|
Так вопрос - фоновое задание разве в Отладчике и Подписке не видно?
И оно запускается - при проведении документа а не по расписанию? В моем случае - именно при проведении документа. |
|||
8
Влад_Савин
20.06.24
✎
15:00
|
Нет, не фоновое. Заглянул в Консоль заданий (до того снова перепровел документ). В расписании никакого нового задания (и с временем минуту назад) не появилось!
|
|||
9
shuhard
20.06.24
✎
15:01
|
(7) не ипи мозг
поставь точку останова у РГ перед записью |
|||
10
Valdis2007
20.06.24
✎
15:01
|
(7) Так вопрос - фоновое задание разве в Отладчике и Подписке не видно?
Если не стоит парметр запуска РежимОтладки или автоматичское подключение = фоновые задания...то нет |
|||
11
Влад_Савин
20.06.24
✎
15:01
|
Про расширение конфигурации - оч маловероятно. Я с этой самой конфой работаю уже 7 лет, ничего не добавлял - и мой предшественник, сдавая мне ее, ничего не говорил, что тут расширения есть
|
|||
12
lEvGl
20.06.24
✎
15:02
|
(7) есть такая типовая история как ДлительныеОперации.ВыполнениеВФоне и т д, но это в новых, попробуйте поискать, может тоже есть
|
|||
13
lEvGl
20.06.24
✎
15:03
|
(8) фоновое <> регламетное
|
|||
14
lEvGl
20.06.24
✎
15:04
|
а так да, (9)
|
|||
15
Влад_Савин
20.06.24
✎
15:13
|
Непонятка! Поставил как тут советовали
в модуле регистра в "ПередЗаписью" написал Сообщить И точку останова Остановилось. В Стеке - вижу что вызов из УДаление движений (что и было - движения пустые). Жму продолжить - и вылет. Но в окне сообщений ДВА сообщения!! Первое - эт понятно, в тот момент когда я смотрел. А откуда второе взялось!? И то есть, программа вышла на это сообщение ПРИ ТОЧКЕ ОСТАНОВА но не остановилась?? |
|||
16
lEvGl
20.06.24
✎
15:16
|
(15) набор два раза пишется, сначала пустой
там всегда надо ставить Если ЗначениеЗаполнено(Набор) Тогда Или Набор.Количество(), кому как больше нравится |
|||
17
Kongo2019
20.06.24
✎
15:19
|
(15) Логично. Сначала чистит свои записи, потом пишет.
|
|||
18
Влад_Савин
20.06.24
✎
15:30
|
Не. Поставил точки останова в модуле Регистра на - ВыполнитьПриход, ВыполнитьРасход, ВыполнитьДвижения - не отрабатывают!
Атрибута Набор там нет. Есть мТаблицаДвижений - оба раза пусто (я это на Сообщение повесил) |
|||
19
Dmitrii
20.06.24
✎
15:32
|
🤔 Топикстартер упорно не озвучивает имя регистра и документа...
|
|||
20
Влад_Савин
20.06.24
✎
15:33
|
Вопрос - программа у нас "гибрид" УТ10 и CRM. Может в ней быть какой-то "секретный код" (кусок программы) не видимый ни в конфигураторе ни в отладчике?
Этот регистр был в Поддержке - "запрещен к редактированию", причем запрет стоял от CRM |
|||
21
Dmitrii
20.06.24
✎
15:33
|
(18) >> Атрибута Набор там нет.
В модуле набора записей Набор = ЭтотОбъект. |
|||
22
Влад_Савин
20.06.24
✎
15:35
|
Да пожалуйста - документ Поступление из переработки, регистр ПартииПереданные.
И надо в этих партиях порядок округления поменять - где-то добавить копейки. Так еще непонятка - есть в документе и таб часть Комплектующие, где я могу вручную эти копейки поправить! Но в движениях Регистра все равно будет старое значение! Хотя в регистр Товары Переданные - попадет измененное. |
|||
23
lEvGl
20.06.24
✎
15:36
|
Вопрос - программа у нас "гибрид" УТ10 и CRM. Может в ней быть какой-то "секретный код" (кусок программы) не видимый ни в конфигураторе ни в отладчике? чепуха |
|||
24
Dmitrii
20.06.24
✎
15:36
|
(11) >> Я с этой самой конфой работаю уже 7 лет
(20) >> Может в ней быть какой-то "секретный код"...? Я один вижу тут противоречие?... |
|||
25
lEvGl
20.06.24
✎
15:37
|
(24) да тут все на противоречиях)
опыт колоссальный, а откуда движения берутся найти не можем |
|||
26
Механик
20.06.24
✎
15:45
|
Знаю такую фигню. Странно, что ты с ней впервые столкнулся. Короче, теоретически объяснить не могу, что это и как работает. Что-то связанное с набором записей. Обхожу следующим образом - после проведения обхожу НаборЗаписей этого регистра с отбором по регистратору и правлю, что нужно. И ещё раз провожу.
|
|||
27
Влад_Савин
20.06.24
✎
15:46
|
Да, представьте, я 7 лет уже дописываю эту программу (под нашу фирму), и не раз уже так добавлял в проводки по регистрам - но вот с таким сталкиваюсь впервые!
Про "секретный код" мне вчера сказал приятель, тоже прогер 1С. Откуда в итоге берутся движения - ? Я уже пытался просто доп.проводку добавлять - но тогда слетает расчет калькуляции себестоимости (там привязка к строкам документа - и лишние строки на эти копейки, этот порядок сбивают). Стал вписывать внешней обработкой на этот документ, объект Движения, изменить строки в наборе, записать. Все работает, и калькуляция тоже - но, емое, как только ставлю "восстановить последовательность" (перепровести все документы в базе данных, с января) все изменения в строках слетают! (что интересно, дописанные строки НЕ исчезали. но они не подходят, см выше). Итого остается - найти где формируются движения и править там. Вот и бю.сь уже вторую неделю! |
|||
28
Влад_Савин
20.06.24
✎
15:50
|
Обхожу следующим образом - после проведения обхожу НаборЗаписей этого регистра с отбором по регистратору и правлю, что нужно. И ещё раз провожу.
Ну так я так же и делал! Внешняя обработка, выбор нужный документ (а он может быть и месяц и два и три назад), у него запросом, Движения с отбором по регистратору, нужная Номенклатура, изменить стоимость, записать. Все Ок, включая калькуляцию!! Но когда я восстанавливаю последовательность (все перепровожу - а это надо, иначе будут другие тараканы) то все изменения ек! А как вы последовательность восстанавливали? |
|||
29
Dmitrii
20.06.24
✎
15:50
|
(22) Судя по регистру и документу, проблема вряд ли связана с (20) - тем что конфа - гибрид УТ+CRM.
Ставьте точку останова в ПередЗаписью в модуле набора записей. от неё пляшите. |
|||
30
Влад_Савин
20.06.24
✎
16:03
|
Так ставил - там ничего!
Ладно - если не выходит решить проблему в лоб, попробую обойти Изменить процедуру восстановления последовательности - чтобы она конкретно этот тип документа проводила по иному - после стандартного проведения, тут же вставляла доп. обработку (отлаженную мной на внешней обработке). Должно сработать - чтоб нужный результат. Уже в поненельник если интересно, отпишусь что выйдет. |
|||
31
Garikk
20.06.24
✎
16:23
|
кэш то пробовали чистить? два раза посоветовали уже, магия такого рода появляется почти всегда из-за этого
|
|||
32
maxab72
21.06.24
✎
08:28
|
1. Попробовать на тестовой. Если не повторилось, значит глюк - чистить кэши, проводить ТИИ. Если повторилось, значит это функционал.
2. Проверить поиском все места в коде, где этот регистр записывается. Думать. Если не помогло. Думать два раза. 3. Проверить все места в коде, где этот регистр упоминается. Думать три раза. |
|||
33
Ненавижу 1С
21.06.24
✎
08:53
|
(30) значит фоновое событие
|
|||
34
Ёпрст
21.06.24
✎
09:01
|
(0) отложенные проведения
|
|||
35
lEvGl
21.06.24
✎
09:06
|
(18) а модуль чего зашли? модуль набора надо смотреть
и что это Выполнить приход, расход, какая то местная магия? Может в ней и дело |
|||
36
Волшебник
21.06.24
✎
09:10
|
(19) Это ж-ж-ж неспроста...
|
|||
37
Лирик
21.06.24
✎
09:14
|
Сдается мне, что ТС ищет эту процедуру: "УправлениеЗапасамиПартионныйУчет.ПоступлениеПереданныхУпр"
|
|||
38
Влад_Савин
05.07.24
✎
11:25
|
Проблему решил - "если нельзя в лоб, то можно ее обойти".
Не получалось добавить/изменить проводки в модуле документа. Можно было добавить движения после - но эти добавки слетали при восстановлении последовательности (там перепроведение документов). А раз я так и смог поправить модуль документа - то я изменил код процедуры Восстановление последовательности (она регламентная, в нашей базе 1С). Чтоб документ вида "Поступление из переработки" (если в нем установлен признак "корректировка" (булевский)) обрабатывался как мне надо. И все стало Ок - все довольны - и бухгалтерия, и клиентский |
|||
39
Волшебник
05.07.24
✎
11:27
|
(38) Вместо одного костыля теперь стало два костыля
|
|||
40
trad
05.07.24
✎
11:42
|
(39) на двух удобнее чем на одном
|
|||
41
Влад_Савин
05.07.24
✎
13:19
|
Ну так работает, дает тот результат что требуется - а что еще надо?
Ну а что при этом внутри программы - это сугубо моя кухня. Пользователи ее не видят. |
|||
42
Волшебник
05.07.24
✎
13:21
|
(41) Вы учтите, что Ваши действия пишутся Вам в карму. Вы зарядили ружьё, подложили мину. Потом это обязательно выстрелит и взорвётся.
|
|||
43
dmt
05.07.24
✎
15:29
|
(42) возможно, это у пользователей карма плохая
|
|||
44
s_newbi
05.07.24
✎
16:26
|
(41) Ты так и не смог найти откуда у тебя второй раз вызывалось "ПередЗаписью" в регистре?)
В настройках отладки надо было поставить автоподключение фоновых заданий. |
|||
45
Злопчинский
05.07.24
✎
16:34
|
Смешно с восьмерочников ;-)
Интересная система, много возможностей накостылять |
|||
46
PLUT
05.07.24
✎
16:42
|
(45) обычное костылестроение в типовых (ну там онлайн/оффлайн расчеты и фоновые допроведения/переотражения по ночам/при закрытиях)
всё ради удобства пользователей, чтобы не было заметных тормозов и конфликта блокировок в битве за ресурсы) |
|||
47
Chameleon1980
06.07.24
✎
16:36
|
(2) и спустя 20 лет будешь новое находить - не перживай.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |