|
1С 8 УПП Распределенка и перерасчеты | ☑ | ||
---|---|---|---|---|
0
golden-pack
26.07.13
✎
10:42
|
1C 8.2 УПП 1.3
РИБ по типовому плану обмена "Полный" + незначительный доработки для корректировки коллекции получателей. Ситуация: Из центра грузититя обмен в базу, в которой не зарегистрированы никакие изменения. После загрузки обмена - регистрируются изменения по двум таблицам: Перерасчет доп. начислений, ПерерасчетОснНачислений http://s55.radikal.ru/i150/1307/c2/971cf65ecba3.jpg Всю конфу перерыл: проверил процедуры ПередЗаписью(), ПриЗаписи() - документов по кадровому и зарплатному учету и самих регистров расчетов, все подписки на события - не нашел код, который бы избыточно перезаписывал (т.е. регистрировал) данные. Глобаальнйы поиск по словам "ПерерасчетДополнительныхНачислений" в общем модуле "ПроведениеРасчетов" - нашел две процедуры: Процедура ОбработатьТаблицуПерерасчетов(Ссылка) Экспорт //... ВыборкаОбъектПерерасчета = Запрос.Выполнить().Выбрать(); Пока ВыборкаОбъектПерерасчета.Следующий() Цикл Если ЗначениеЗаполнено(ВыборкаОбъектПерерасчета.ОбъектПерерасчетаОсновные) Тогда НаборЗаписейПерерасчета = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.Перерасчеты.ПерерасчетОсновныхНачислений.СоздатьНаборЗаписей(); НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Значение = ВыборкаОбъектПерерасчета.ОбъектПерерасчетаОсновные; НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Использование = Истина; НаборЗаписейПерерасчета.Записать(); КонецЕсли; Если ЗначениеЗаполнено(ВыборкаОбъектПерерасчета.ОбъектПерерасчетаДополнительные) Тогда НаборЗаписейПерерасчета = РегистрыРасчета.ДополнительныеНачисленияРаботниковОрганизаций.Перерасчеты.ПерерасчетДополнительныхНачислений.СоздатьНаборЗаписей(); НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Значение = ВыборкаОбъектПерерасчета.ОбъектПерерасчетаДополнительные; НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Использование = Истина; НаборЗаписейПерерасчета.Записать(); КонецЕсли; КонецЦикла; //... + Еще процедура Процедура "УдалитьСведенияОПерерасчетеДокумента(ДокументСсылка, ТолькоПоИсправленнымДокументам = Ложь) Экспорт" Ставил точку останова, прогонял обмен из под клиента + подключал серверную отладку - не останавливается. Собственно что делать ? Где еще смотреть ... |
|||
1
Галахад
гуру
26.07.13
✎
10:51
|
А непосредственно при обмене, в менеджере записи поставить точку останова?
А потом по стеку вызовов найти негодника. |
|||
2
golden-pack
26.07.13
✎
10:59
|
(0) точно, попробую отпишусь ...
|
|||
3
golden-pack
26.07.13
✎
10:59
|
(2) к (1)
|
|||
4
golden-pack
26.07.13
✎
11:36
|
поставил точку останова в модуле набора записей перерасчета.
остановилось 2 раза, при том что записываемые набор один: http://s14.radikal.ru/i187/1307/9e/50a31c09a965.jpg |
|||
5
golden-pack
31.07.13
✎
10:32
|
вот мой вопрос http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=612623
|
|||
6
golden-pack
31.07.13
✎
10:33
|
ответа нет, видимо записи переасчетов формируются автоматически платформой при непоследовательной загрузке данных из файла обмена
|
|||
7
golden-pack
02.08.13
✎
07:39
|
ап
|
|||
8
golden-pack
08.08.13
✎
05:27
|
ап
|
|||
9
golden-pack
08.08.13
✎
05:29
|
Срабатывает типовой механизм (т.е. без кода) - при записываниеи документам из обмена (метод "ПланыОбмена.ПрочитатьИзменения") в таблицу перерасчетов добавляется запись(добавляется не в режиме обмена данными).
Что делать ? |
|||
10
golden-pack
08.08.13
✎
05:46
|
Еще раз, например: в центре проводится документ "Невыход в организации" при этом добавляются записи в таблицы перерасчетов основных и дополнительных начислений работников организаций.
Далее при загрузке в узле файла из центра ставится точка останова в проц. Передзаписью Перерасчета Основных начислений. Первая остановка - режим обмена данными = Истина (все ок - изменения пришли) Вторая остановка - режим обмена данными = Ложь( здесь ошибка - этого быть не должно) |
|||
11
golden-pack
08.08.13
✎
05:47
|
+(10) во второй остановке в стеке вызовов перед самой остановкой процедура: ОбщийМодуль.ПроцедурыОбменаДанными.Модуль.ЗагрузитьCообщениеСИзменениямиОтРИБУзла(СтруктураНастроекОбменаДанными = Структура, ЧтениеXML = ЧтениеXML, КонфигурацияИзмененаПриОбменеРИБ = Ложь) 1 593
ТО ЕСТЬ никакой код не отрабатывается |
|||
12
golden-pack
08.08.13
✎
05:48
|
Процедура ЗагрузитьCообщениеСИзменениямиОтРИБУзла(СтруктураНастроекОбменаДанными, ЧтениеXML, КонфигурацияИзмененаПриОбменеРИБ = ЛОжь)
СтруктураНастроекОбменаДанными.РезультатЧтенияДанных = Истина; КонфигурацияИзмененаПриОбменеРИБ = Ложь; // Загрузка из найденного файла ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); ЧтениеСообщения.НачатьЧтение(ЧтениеXML); Попытка ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, СтруктураНастроекОбменаДанными.КоличествоЭлементовВТранзакцииНаЗагрузкуДанных); ЧтениеСообщения.ЗакончитьЧтение(); ЧтениеXML.Закрыть(); Исключение СообщитьИнформациюОбОшибкеОбмена("Ошибка при чтении изменений при обмене РИБ: " + ОписаниеОшибки(), СтруктураНастроекОбменаДанными, Истина, Ложь); // ошибка может быть связана с тем, что изменилась конфигурация информационной базы Если ПланыОбмена.ГлавныйУзел() <> Неопределено И КонфигурацияИзменена() Тогда КонфигурацияИзмененаПриОбменеРИБ = Истина; СтруктураНастроекОбновленияКонфигурации = ПолучитьСтруктуруНастроекФайлаОбновленияКонфигурации(); НужноОбновлятьКонфигурацию = Ложь; СтруктураНастроекОбновленияКонфигурации.Свойство("АвтоматическиОбновлятьКонфигурациюПриПриемеСообщенияОтГлавногоУзлаРИБ", НужноОбновлятьКонфигурацию); Если НужноОбновлятьКонфигурацию = Истина Тогда НастройкаОбмена = Неопределено; Если СтруктураНастроекОбменаДанными.ДанныеНастройкиАвтообмена <> Неопределено Тогда НастройкаОбмена = СтруктураНастроекОбменаДанными.ДанныеНастройкиАвтообмена.Ссылка; КонецЕсли; // при необходимости нужно обновить конфигурацию ИБ ВыполнитьОбновлениеКонфигурацииДляИнформационнойБазы(НастройкаОбмена, СтруктураНастроекОбновленияКонфигурации); КонецЕсли; Конецесли; Возврат; КонецПопытки; КонецПроцедуры |
|||
13
golden-pack
08.08.13
✎
10:24
|
ап
|
|||
14
Maxus43
08.08.13
✎
10:26
|
ты почитал что вобще за объекты это, Перерасчеты?
|
|||
15
golden-pack
08.08.13
✎
10:27
|
(14) да, если что то хочешь сказать - говори прямо :)
|
|||
16
Maxus43
08.08.13
✎
10:40
|
погодь, (10) точно? вторая точка не в режиме обмена данными?
|
|||
17
golden-pack
08.08.13
✎
10:43
|
(16) да
|
|||
18
Maxus43
08.08.13
✎
10:45
|
у перерасчетов кстати есть свой модуль набора записей, там гадости нет?
|
|||
19
golden-pack
08.08.13
✎
10:48
|
(18) я все проверил. там ничего нет, именно там ставил точку останова в (10)
|
|||
20
Maxus43
08.08.13
✎
10:53
|
автоматом платформой они не регистрируются, всё в коде должно быть... дебаг включен? хоть и делаешь "на клиенте", возможно некоторые процедуры таки едут на сервер принудительно, и не видать их
|
|||
21
golden-pack
08.08.13
✎
10:56
|
(20) прочитай еще раз (0) там написано что включен режим отладки. Что глобальным поиском по конфе были найдены все места где упоминаются перерасчеты, что везде в них ставились точки останова и что результата это не принесло. Отсюда вывод что перерасчеты регятся автоматом платформой ... можешь как то аргументировать что не регятся ? Вот еще (5) прочитай - там такой же вопрос без ответа
|
|||
22
Maxus43
08.08.13
✎
11:04
|
да, покурил библию большую, всё правильно, перерасчеты в некоторых случаях пишутся автоматом платформой, причем автоматом как правило не удаляются.
Собсно у нас в РИБе тоже постоянно зарегистрированы различные перерасчеты, никому не мешает, они носят рекомендательный характер. Разрабы типовых не предусмотрели все случаи очистки перерасчетов, на днях тоже будум разбираться с ними |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |