|
Узнать причину аварийного завершения 1С | ☑ | ||
---|---|---|---|---|
0
егаис
20.07.22
✎
09:31
|
После включения суммового учета по складам в БП, появились суммы с + и - по складам, что логично, в принципе. Сводно по номенклатуре = 0.
Задача свернуть. Обработка простая &НаСервере Процедура СверткаНаСервере() Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); Проводки.ОбменДанными.Загрузка = Истина; Проводки.Отбор.Регистратор.Установить(ДокОперация); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Субконто1, | ХозрасчетныйОстатки.Субконто2 КАК Субконто2, | ХозрасчетныйОстатки.Субконто3 КАК Субконто3, | ХозрасчетныйОстатки.Организация КАК Организация, | ХозрасчетныйОстатки.Подразделение КАК Подразделение, | СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК СуммаОстаток, | СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток, | СУММА(ХозрасчетныйОстатки.СуммаНУОстаток) КАК СуммаНУОстаток, | СУММА(ХозрасчетныйОстатки.СуммаПРОстаток) КАК СуммаПРОстаток, | СУММА(ХозрасчетныйОстатки.СуммаВРОстаток) КАК СуммаВРОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В (&Счет10), , ) КАК ХозрасчетныйОстатки | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Организация, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Подразделение, | ХозрасчетныйОстатки.Субконто3, | ХозрасчетныйОстатки.Счет |ИТОГИ ПО | Счет, | Субконто1"; Запрос.УстановитьПараметр("Период", НачалоДня(ДатаСвертки)); МассивСчетов = Новый Массив; МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.СырьеИМатериалы); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПокупныеПолуфабрикатыИКомплектующие); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.Топливо); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.Тара); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.ЗапасныеЧасти); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПрочиеМатериалы); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.СтроительныеМатериалы); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежности); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаНаСкладе); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.ПриобретениеМалоценногоОборудованияИЗапасов); МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.ВыбытиеМалоценногоОборудованияИЗапасов); Запрос.УстановитьПараметр("Счет10", МассивСчетов); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеСчет = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Счет"); Пока ВыборкаДетальныеСчет.Следующий() Цикл ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ВыборкаДетальныеСчет.Счет); ВыборкаДетальныеНоменклатура = ВыборкаДетальныеСчет.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Субконто1"); Пока ВыборкаДетальныеНоменклатура.Следующий() Цикл Если (ВыборкаДетальныеНоменклатура.СуммаОстаток <> 0) ИЛИ (ВыборкаДетальныеНоменклатура.КоличествоОстаток <> 0) Тогда Продолжить; КонецЕсли; ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ВыборкаДетальныеНоменклатура.Субконто1); ВыборкаДетальные = ВыборкаДетальныеНоменклатура.Выбрать(); Пока ВыборкаДетальные.Следующий() Цикл НоваяПроводка = Проводки.Добавить(); НоваяПроводка.Период = ДокОперация.Дата; НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный; НоваяПроводка.СчетДт = ВыборкаДетальные.Счет; НоваяПроводка.Организация = ВыборкаДетальные.Организация; НоваяПроводка.ПодразделениеДт = ВыборкаДетальные.Подразделение; БухгалтерскийУчет.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, "Номенклатура", ВыборкаДетальные.Субконто1); БухгалтерскийУчет.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, "Склады", ВыборкаДетальные.Субконто2); БухгалтерскийУчет.УстановитьСубконто(НоваяПроводка.СчетДт, НоваяПроводка.СубконтоДт, "Партии", ВыборкаДетальные.Субконто3); НоваяПроводка.Сумма = - ВыборкаДетальные.СуммаОстаток; НоваяПроводка.СуммаВРДт = - ВыборкаДетальные.СуммаВРОстаток; НоваяПроводка.СуммаПРДт = - ВыборкаДетальные.СуммаПРОстаток; НоваяПроводка.СуммаНУДт = - ВыборкаДетальные.СуммаНУОстаток; КонецЦикла; КонецЦикла; КонецЦикла; Проводки.Записать(); КонецПроцедуры Но блин практически сразу ловлю аварийное завершение. В логи не пишется, ТиИ предварительно делал. Как отловить ошибку? |
|||
1
mikecool
20.07.22
✎
09:32
|
в отладчике пройдись по шагам
|
|||
2
Галахад
гуру
20.07.22
✎
09:35
|
Может памяти не хватает. Почему это не в запросе? (ВыборкаДетальныеНоменклатура.СуммаОстаток <> 0) ИЛИ (ВыборкаДетальныеНоменклатура.КоличествоОстаток <> 0)
|
|||
3
егаис
20.07.22
✎
09:35
|
(1) все строки отрабатывают нормально, но на каком-то этапе крашится. Записей - сотни тысяч, думаю не доживу
|
|||
4
егаис
20.07.22
✎
09:35
|
(2) ищем где сводно по номенклатуре = 0
|
|||
5
6awkup_true
20.07.22
✎
09:36
|
переполнение стека может быть. вариант "Остановиться по ошибке" не предлагать? можно попробовать платформу другой версии
|
|||
6
егаис
20.07.22
✎
09:37
|
(5) пробовал тормозить по ошибке, не останавливается.
Тестировал по одному субсчету, такая же фигня, дело в не памяти, сервер нормальный |
|||
7
Lama12
20.07.22
✎
09:37
|
Технологический журнал?
|
|||
8
mikecool
20.07.22
✎
09:38
|
памяти скорее всего не хватает, пиши пачками по 1000 проводок или сколько нить
|
|||
9
егаис
20.07.22
✎
09:39
|
(8) нет, ошибка проявляется достаточно быстро, видимо придется тыкать F11
|
|||
10
егаис
20.07.22
✎
09:40
|
Точнее по f5 по циклу бегать
|
|||
11
6awkup_true
20.07.22
✎
09:42
|
(10) напиши свой лог в хмл. на каждой итерации пишешь данные проводки в файл. файл записываешь, после записываешь проводку. на момент как 1С упадет у тебя в файле будут данные проводки, которая все положила
|
|||
12
6awkup_true
20.07.22
✎
09:44
|
(9) еще можешь попробовать выгрузить/загрузить базу. он сделает реструктуризацию таблиц БД и возможно все взлетит
|
|||
13
mikecool
20.07.22
✎
09:45
|
(12) еще очень много советов было, но жаль - куры все сдохли...
|
|||
14
егаис
20.07.22
✎
09:46
|
(11) да, точно, не догадался
|
|||
15
6awkup_true
20.07.22
✎
09:48
|
(13) таки сначала нужно попробовать провести стандартные действия, полагаю, а уже потом искать помощи. а тут кроме ТиИ ТС ничего не сделал. потому и советов будет 9К+)
|
|||
16
егаис
20.07.22
✎
11:17
|
проблема оказалась в платформе
(8.3.19.1351) в топку |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |