|
Ошибка записи в РС | ☑ | ||
---|---|---|---|---|
0
1Сnewk
06.08.24
✎
13:04
|
Доброго всем!
Типовая КА 2.5. При выгрузке ABC/XYZ-классификация клиентов (т.е. записи в РС) выдает ошибку Поле "клиент" не может быть пустым (Скрин 1). Такую ошибку выдает, если использовать настройки за 3 последних месяца (скрин2), если за 2 месяца делать, то все норм - выгружается. Я так понимаю, что ошибка в мае месяце. Теперь бы понять из какого документа загружается в этот РС данные. Саму процедуру нашла и дальше стопор... что искать не понимаю... Подскажите пожалуйста в каком направлении искать косячные документы Нерелевантный программный кодПроцедура: Процедура ВыполнитьABCКлассификациюПартнеров(ДатаКлассификации = Неопределено) Экспорт УстановитьПривилегированныйРежим(Истина); ИспользоватьКлассификациюПоВаловойПрибыли = ПолучитьФункциональнуюОпцию("ИспользоватьABCXYZКлассификациюПартнеровПоВаловойПрибыли"); ИспользоватьКлассификациюПоВыручке = ПолучитьФункциональнуюОпцию("ИспользоватьABCXYZКлассификациюПартнеровПоВыручке"); ИспользоватьКлассификациюПоКоличеству = ПолучитьФункциональнуюОпцию("ИспользоватьABCXYZКлассификациюПартнеровПоКоличествуПродаж"); Если НЕ ИспользоватьКлассификациюПоВаловойПрибыли И НЕ ИспользоватьКлассификациюПоВыручке И НЕ ИспользоватьКлассификациюПоКоличеству Тогда Возврат; КонецЕсли; ПериодКлассификации = Константы.ПериодABCКлассификацииПартнеров.Получить(); КоличествоПериодовКлассификации = Константы.КоличествоПериодовABCКлассификацииПартнеров.Получить(); Если ПериодКлассификации.Пустая() ИЛИ КоличествоПериодовКлассификации = 0 Тогда Возврат; КонецЕсли; Запрос = Новый Запрос( "ВЫБРАТЬ | РегистрСведенийАналитикаУчетаПоПартнерам.Партнер КАК Партнер, | СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) - СУММА(ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот) - СУММА(ВыручкаИСебестоимостьПродажОбороты.ДопРасходыОборот) КАК ВаловаяПрибыль, | СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) КАК Выручка, | СУММА(ВЫБОР | КОГДА ВыручкаИСебестоимостьПродажОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ) КАК Количество |ИЗ | РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериода, &ОкончаниеПериода, Регистратор,(НЕ АналитикаУчетаПоПартнерам.Партнер.Предопределенный) И (НЕ АналитикаУчетаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка))) КАК ВыручкаИСебестоимостьПродажОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрСведенийАналитикаУчетаПоПартнерам | ПО ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаПоПартнерам = РегистрСведенийАналитикаУчетаПоПартнерам.КлючАналитики |СГРУППИРОВАТЬ ПО | РегистрСведенийАналитикаУчетаПоПартнерам.Партнер"); Период = ОбщегоНазначенияУТКлиентСервер.РасширенныйПериод(?(ДатаКлассификации = Неопределено, ТекущаяДатаСеанса(), ДатаКлассификации), ПериодКлассификации, - КоличествоПериодовКлассификации); Запрос.УстановитьПараметр("НачалоПериода", Период.ДатаНачала); Запрос.УстановитьПараметр("ОкончаниеПериода", Период.ДатаОкончания); РезультатКлассификации = Запрос.Выполнить().Выгрузить(); Если ИспользоватьКлассификациюПоВаловойПрибыли Тогда ВыполнитьABCКлассификацию(РезультатКлассификации, "ВаловаяПрибыль"); ОбновитьДанныеКлассификацииПартнеров( РезультатКлассификации, Перечисления.ТипыКлассификации.ABC, Перечисления.ТипыПараметровКлассификации.ВаловаяПрибыль, Период.ДатаОкончания, Перечисления.ABCКлассификация.НеКлассифицирован); КонецЕсли; Если ИспользоватьКлассификациюПоВыручке Тогда ВыполнитьABCКлассификацию(РезультатКлассификации, "Выручка"); ОбновитьДанныеКлассификацииПартнеров( РезультатКлассификации, Перечисления.ТипыКлассификации.ABC, Перечисления.ТипыПараметровКлассификации.Выручка, Период.ДатаОкончания, Перечисления.ABCКлассификация.НеКлассифицирован); КонецЕсли; Если ИспользоватьКлассификациюПоКоличеству Тогда ВыполнитьABCКлассификацию(РезультатКлассификации, "Количество"); ОбновитьДанныеКлассификацииПартнеров( РезультатКлассификации, Перечисления.ТипыКлассификации.ABC, Перечисления.ТипыПараметровКлассификации.Количество, Период.ДатаОкончания, Перечисления.ABCКлассификация.НеКлассифицирован); КонецЕсли; КонецПроцедуры
|
|||
1
Волшебник
06.08.24
✎
13:05
|
Ищите другую процедуру, ставьте точку останова и смотрите строку 429 набора записей
|
|||
2
1Сnewk
06.08.24
✎
13:07
|
(1) Какую другую процедуру?
|
|||
3
Волшебник
06.08.24
✎
13:09
|
(2) Процедуру, которая пишет данные в регистр сведений
|
|||
4
rphosts
06.08.24
✎
13:18
|
(2) открой для себя конфигуратор с включенным остановом по ошибке
|
|||
5
Ненавижу 1С
06.08.24
✎
13:31
|
У вас на 31.07 (подозреваю периодичность месяц, значит июль) есть выручка с пустым партнёром. Посмотрите регистр накопления выручка и себестоимость продаж с отбором по пустому партнеру
|
|||
6
1Сnewk
07.08.24
✎
08:24
|
(4) Открыла, благодарю.
|
|||
7
1Сnewk
07.08.24
✎
08:26
|
(5) К сожалению что-то не то... Было 2 документа с пустым партнером (но даты стояли 22,23 год), я их поставила на удаление (в тестовой разумеется). Результата не дало. Но все равно спасибо)
|
|||
8
craxx
07.08.24
✎
08:31
|
(0) Нажать "Подробно" на ошибке с 1го скрина, там стек вызовов покажется, и в нем посмотреть где именно валится в ошибку.
|
|||
9
master Yoda
07.08.24
✎
08:39
|
(7) если это именно записи в РС
Просто физически станьте на эти записи, измените их, т.е. либо допишите в пустые поля какие-то значения, либо просто удалите эти записи. Для РС это допускается. |
|||
11
Мультук
07.08.24
✎
10:30
|
(7)
0) Включаем голову. Да лето, жарко, но нужно это сделать. 1) У вас там есть запрос Запрос = Новый Запрос( "ВЫБРАТЬ | РегистрСведенийАналитикаУчетаПоПартнерам.Партнер КАК Партнер, | СУММА(ВыручкаИСебестоимостьПродажОбороты.СуммаВыручкиОборот) - СУММА(ВыручкаИСебестоимостьПродажОбороты.СтоимостьОборот) - В отладчике можно посмотреть с каким параметрами он запускается. 2) Берем текст запроса, параметры и выполняем в консоле запросов и смотрим на результат в колонку "Партер" -- ищем строчку с пустым партнером 3) Если строчек много и глазам больно смотреть, думаем как себе помочь, например дописать "ГДЕ", выкинуть результат в EXCEL, добавить сортировку по Партнер 4) Возможно условие (для запроса в консоли) может помочь: ГДЕ РегистрСведенийАналитикаУчетаПоПартнерам.Партнер IS NULL 5) Если тут всё хорошо, то двигаемся дальше по коду |
|||
12
1Сnewk
07.08.24
✎
11:29
|
(8) Да где ошибка я нашла. Теперь надо найти в каких документах. Осваиваю (наконец-то) отладчик. В данный момент пытаюсь понять в какой переменной собираются эти записи, чтобы по номеру строки найти косячные документы... Во второй точки останова ошибка. Вывожу выражение "НаборЗаписей", но там нет списка документов. Кто может подсказать? 😳
|
|||
13
1Сnewk
07.08.24
✎
11:33
|
(11) Не увидела ваше сообщение, спасибо, сейчас попробую реализовать)
|
|||
14
master Yoda
07.08.24
✎
11:35
|
А я бы просто посмотрел, есть ли в этом регистре полезные данные из прошлого, которые для чего-то нужны, да очистил бы его полностью. Чтоб не спотыкаться на древнем мусоре
|
|||
15
lEvGl
07.08.24
✎
11:49
|
(12) смотреть надо в сам набор, в его значение, а не в его свойства
F2 в табло на наборе |
|||
16
1Сnewk
07.08.24
✎
11:56
|
(11) Спасибо большое, что делитесь опытом! Круто! Все получилось 🥰😊
|
|||
17
1Сnewk
07.08.24
✎
11:57
|
(14) Нет, там было пусто, он просто туда не формировался.
|
|||
18
Мультук
07.08.24
✎
12:09
|
(17)
Это радует. P.S. Ваше удивление с пустым Отбор.Партнер в (12) на рис 2, меня несколько "взволновало". Важно! Разберитесь на досуге (на тестовой базе, можно даже на тестовом регистре ) 1) как работает СоздатьНаборЗаписей 2) Почему ОЧЕНЬ важно не пролюбить установку отборов Удачи! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |