|   |   | 
| 
 | Совершенно непонятная проблема в модуле проведения документа 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 лет будешь новое находить - не перживай.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |