Имя: Пароль:
1C
 
Ошибка при проведении документа
0 NIGHTHUNTER
 
05.02.22
12:20
При проведении документа, выводится сообщение об ошибке http://joxi.ru/YmEbex8CB8bPY2 .
Там может выводиться сообщение либо о синтаксической ошибке либо об ошибке контроля остатков.
Но выводится вот такое вот сообщение.
И ничего.
Что это может быть?
1 ДенисЧ
 
05.02.22
12:22
Код написан так, что подробности не выводтся.
2 NIGHTHUNTER
 
05.02.22
12:34
Пока ВыборкаНоменклатура.Следующий() Цикл

на вот этой строке, сразу вылетает
3 NIGHTHUNTER
 
05.02.22
12:35
(2+) вылетает вот на вот этой номенклатуре, у нее нет приходных накладных

http://joxi.ru/gmvaZ43tdkyOjr
4 acht
 
05.02.22
12:40
Потому что кинокамера - не рыба.
5 Kassern
 
05.02.22
12:42
(2) что-то мне не верится, что при обходе выборки вылетает именно на ВыборкаНоменклатура.Следующий(), при условии что ВыборкаНоменклатура - Выборка, а не какое-то там неопределенно)
6 piter3
 
05.02.22
12:43
запрос выложи уже
7 piter3
 
05.02.22
12:43
(5) вот выложит код и узнаем всю степень падения
8 acht
 
05.02.22
12:45
(5) Конечно. Потому что вылетает при записи или проведении при выставлении Отказ в Истина.
Очевидно, что Исктимские выборки наcтолько суровы, что проводят документы при получении следующего элемента.
9 Kassern
 
05.02.22
12:46
(8) но как мы можем не верить ТС, он ведь заявляет, что "на вот этой строке, сразу вылетает")
10 NIGHTHUNTER
 
05.02.22
13:46
(5) Меня самого выбило из работы.
Вылетает именно на этой строке, и в момент прохождения Бодиан Дианы, когда ВыборкаНоменклатура.Номенклатура = Бодиан Дианы
сразу после Пока ВыборкаНоменклатура.Следующий() Цикл
следующий шаг, и эта ошибка.

(6)


Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    МетодСписанияСебестоимости = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(Дата).МетодСписанияСебестоимости;
    Если МетодСписанияСебестоимости.Пустая() Тогда
        Отказ = Истина;
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не указана учетная политика!";
        Сообщение.Сообщить();
        
        Возврат;
    КонецЕсли;
    
    
    Движения.Управленческий.Записывать=Истина;
    Движения.Записать();
    
    Движения.Управленческий.Записывать=Истина;
    
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрБухгалтерии.Управленческий");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары);
    ЭлементБлокировки.УстановитьЗначение(ПланыВидовХарактеристик.ВидыСубконто.Склады, Склад);
    ЭлементБлокировки.ИсточникДанных=СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура");
    Блокировка.Заблокировать();
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
        |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
        |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
        |ПОМЕСТИТЬ ВТ_ТчТовары
        |ИЗ
        |    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
        |ГДЕ
        |    РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_ТчТовары.Номенклатура КАК Номенклатура,
        |    ВТ_ТчТовары.Номенклатура.Представление КАК НоменклатураПредставление,
        |    ВТ_ТчТовары.Количество КАК Количество,
        |    УправленческийОстатки.Субконто3 КАК Партия,
        |    ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
        |    ВТ_ТчТовары.Сумма КАК Сумма
        |ИЗ
        |    ВТ_ТчТовары КАК ВТ_ТчТовары
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
        |                &МоментВремени,
        |                Счет = &СчетТовары,
        |                &ВидыСубконто,
        |                Субконто1 В
        |                        (ВЫБРАТЬ
        |                            ВТ_ТчТовары.Номенклатура КАК Номенклатура
        |                        ИЗ
        |                            ВТ_ТчТовары КАК ВТ_ТчТовары)
        |                    И Субконто2 = &Склад) КАК УправленческийОстатки
        |        ПО ВТ_ТчТовары.Номенклатура = УправленческийОстатки.Субконто1
        |
        |УПОРЯДОЧИТЬ ПО
        |    ВЫРАЗИТЬ(УправленческийОстатки.Субконто3 КАК Документ.ПриходнаяНакладная).МоментВремени УБЫВ
        |ИТОГИ
        |    МАКСИМУМ(Количество),
        |    СУММА(КоличествоОстаток),
        |    СУММА(СуммаОстаток),
        |    МАКСИМУМ(Сумма)
        |ПО
        |    Номенклатура";
    
    Если МетодСписанияСебестоимости = Перечисления.УчетнаяПолитика.ФИФО Тогда
        Запрос.Текст = СтрЗаменить(Запрос.Текст,
                                    "УБЫВ",
                                    "ВОЗР");
    КонецЕсли;
    
    ВидыСубконто = Новый Массив;
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Склады);
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Партия);
    
    Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("СчетТовары", ПланыСчетов.Управленческий.Товары);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаНоменклатура.Следующий() Цикл
        
        Если ВыборкаНоменклатура.Количество > ВыборкаНоменклатура.КоличествоОстаток Тогда
            Отказ = Истина;
            
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = СтрШаблон("Недостаточно товара %1 в количестве %2",
                                        ВыборкаНоменклатура.НоменклатураПредставление,
                                        ВыборкаНоменклатура.Количество - ВыборкаНоменклатура.КоличествоОстаток);
            
        КонецЕсли;
                                    
        Если Отказ Тогда
            Продолжить;            
        КонецЕсли;
        
        КоличествоСписать = ВыборкаНоменклатура.Количество;
    
        ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать();
    
        Пока ВыборкаДетальныеЗаписи.Следующий() И КоличествоСписать > 0 Цикл
            
            Количество = Мин(КоличествоСписать, ВыборкаДетальныеЗаписи.КоличествоОстаток);
            
            Если Количество = ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
                Себестоимость = ВыборкаДетальныеЗаписи.СуммаОстаток;
            Иначе
                Себестоимость = ВыборкаДетальныеЗаписи.СуммаОстаток / ВыборкаДетальныеЗаписи.КоличествоОстаток * Количество;                
            КонецЕсли;
            
            Движение = Движения.Управленческий.Добавить();
            Движение.Период = Дата;
            
            Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки;
            Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура]=ВыборкаДетальныеЗаписи.Номенклатура;
            
            Движение.СчетКт = ПланыСчетов.Управленческий.Товары;
            Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура;
            Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Склады]=Склад;
            Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Партия]=ВыборкаДетальныеЗаписи.Партия;
            Движение.КоличествоКт = Количество;
            
            Движение.Сумма = Себестоимость;      
            
            КоличествоСписать = КоличествоСписать - Количество;
            
        КонецЦикла;
        Движение = Движения.Управленческий.Добавить();
        Движение.Период = Дата;
        Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
        Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
        Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура]=ВыборкаНоменклатура.Номенклатура;
        Движение.Сумма=ВыборкаНоменклатура.Сумма;
    КонецЦикла;
    
КонецПроцедуры
11 ДенисЧ
 
05.02.22
13:49
Если ВыборкаНоменклатура.Количество > ВыборкаНоменклатура.КоличествоОстаток Тогда
            Отказ = Истина;

Только чайники выставляют отказ без ОбщегоНазначенияКлиентСервер.СообщитьПользователю()...
12 NIGHTHUNTER
 
05.02.22
13:55
(11) Согласен. Я он и есть.
13 NIGHTHUNTER
 
05.02.22
13:55
Почему поведение (0)?
Сейчас сделал базу, там тоже самое, но ошибки этой нет, и обход такой же выборки. Разбираюсь сейчас в чем дело.
14 Kassern
 
05.02.22
13:58
(10) Мои глаза...
1) Если Отказ Тогда
            Продолжить;            
        КонецЕсли; -
вот это нафига? Отдельной процедурой/функцией, получите запросом все товары, которые не подходят по условию, а в модуле проведения - ПроверитьДоступностьОтстков(Отказ) Там же вы аккумулируете строки с косячными позициями и оповещаете о них юзверу.
2) Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон("Недостаточно товара %1 в количестве %2",
Это конечно круто, но где метод Сообщить()?))
15 NIGHTHUNTER
 
05.02.22
13:58
Сверил модули. Принципиальной разницы нет, что бы такая ошибка вылетала ((((( На строке

Пока ВыборкаНоменклатура.Следующий() Цикл

не понимаю в чем дело (
16 NIGHTHUNTER
 
05.02.22
13:59
(14) Суть ошибки не в этом. Вылетает в (0).
17 Kassern
 
05.02.22
13:59
(15) в момент вылета, что находится в переменной ВыборкаНоменклатура?
18 Kassern
 
05.02.22
14:00
поставьте точку останова по ошибке, либо на этой строчке и посмотрите перед вылетом, что в ней находится
19 alexxx961503
 
05.02.22
14:06
(15) проверь соответствие типов реквизитов в документе и в регистре(чтобы ссылочный тип случайно не оказался строкой)
(14) это типовой порядок решения задачи при подготовке на Спеца по Платформе на пустой базе.
20 NIGHTHUNTER
 
05.02.22
14:06
(17) вот после этого http://joxi.ru/12MbKqBCwZ4YdA
шаг, и вылетает в конец процедуры, и сообщение в (0)
21 NIGHTHUNTER
 
05.02.22
14:09
(18) Вылетает вот на этом, при добавлении позиции Бодиан Дианы

в данном случае ее нет на приходе, и должен сработать контроль остатков, что заявленного количества не хватает

но тут выбрасывает с неизвестной ошибкой в (0) .
22 NIGHTHUNTER
 
05.02.22
14:12
провожу документ с товарами, где есть остатки, он проводится без помех
23 NIGHTHUNTER
 
05.02.22
14:13
добавляю хоть 1 Бодиан Дианы, чего нет на остатках, вылетает ошибка (0), а должна выходить ошибка контроля остатков.
24 NIGHTHUNTER
 
05.02.22
14:14
Вот в этом мой вопрос. Я так понял это мой кармический глюк. Карма доедает меня. И скоро меня не станет, в этом мире и на этом форуме.
25 NIGHTHUNTER
 
05.02.22
14:32
Вопрос решен. Точнее выяснен.
26 Kassern
 
05.02.22
14:33
и что удалось выяснить?
27 NIGHTHUNTER
 
05.02.22
14:34
(14) Ответ в (14), Хотя.......... тороплюсь я что ли. Я же отладчиком смотрел, там вылетало на шаге цикла.
Я тут подумал что просто сообщение не выводилось.
28 NIGHTHUNTER
 
05.02.22
14:36
странно, сейчас стало выходить сообщить. Но вылетает в странном месте.

(26) Да, вот вспомнил вашу подсказку, что нет метода сообщить. И до меня дошло, что это именно так. Просто не выводится сообщить, я просто лох и все.
Но тут смотрю, снова не то что то.Вылетает же на цикле. Почему в проверку не заходит?!
29 NIGHTHUNTER
 
05.02.22
14:37
(26) То есть вылетает если есть отрацательные остатки и срабатывает Отказ = Истина. Но вот почему я это не вижу, по шагам. А срывается, при появлении позиции в цикле, на которой нет остатка (((.
30 Kassern
 
05.02.22
14:45
(29) кэш чистить пробовали? Может у вас отладка тупит из-за кэша
31 NIGHTHUNTER
 
05.02.22
14:46
особо пока ничего не выяснил, но работает не понятно как ((((
(30) Да возможно сейчас почищу, но у меня какие то все моменты не поянтные.
32 NIGHTHUNTER
 
05.02.22
14:47
(30) Сейчас займусь. По коду прост оне понятно что показывает. И в другой копии, несколько иначе работает я вот и запутался ((.
33 NIGHTHUNTER
 
05.02.22
14:48
(30) в первом каталоге вижу это http://joxi.ru/5mdypJ0CaDvEX2
34 Kassern
 
05.02.22
14:51
вот тут прочтите  https://programmist1s.ru/kak-pochistit-kesh-v-1s/
35 NIGHTHUNTER
 
05.02.22
14:54
(34) То есть там написано как решить эту проблему что бы она не появлялась автоматически?
Пока я его почистил в ручную. И буду проверять сейчас.
36 NIGHTHUNTER
 
05.02.22
14:57
(34) кэш почистил , но все также
37 NIGHTHUNTER
 
05.02.22
15:04
(34) Сейчас я первый раз увидел что заходит в условие проверки остатков, срабатывает отказ и потом продолжить, как и должно было быть.
Но раньше, на шаге цикла именно срубалось все. Если это был кэш. То сейчас поправилось, я это увидел. Что было иначе. До очистки.

Спасибо за статью, буду ее изучать. И применять. А то это не дело с этим кэшем.
38 NIGHTHUNTER
 
06.02.22
06:14
(34) После прочтения статьи, так и буду кэш чистить в ручную. Что этот бат файл делает не знаю. И на сколько он правильно сделан, тоже не знаю.
Использовать что то на свой страх и риск, нет желания. Страх сопровождает меня в сон, и приветствует при пробуждении и так. Я же с Искитима.
39 Мимохожий Однако
 
06.02.22
08:59
ОФФ: любопытные страдания излагает ТС, эпичные переживанию. Жаль не читает, что ему пишет. И делает всё на своей волне.
40 NIGHTHUNTER
 
06.02.22
14:38
(39) Почему это? Все делаю исходя из того что мне пишут и отвечают. Где с помощью именно сообщения, по делу. Сразу же начинаю воспроизводить подсказки.
А если не сразу, потому что не доходит . Глупый я. (14) Вот например, со временем только дошло.
41 GreyK
 
06.02.22
14:48
(40) Зачем решать задание извращенным методом? Какое это ФИФО, ЛИФО, если партия привязывается к абсолютно левому документу смены учетной политики, за такие решения руки отрывать надо по пояс!
42 hhhh
 
06.02.22
15:34
(41) у него же руки ниже пояса растут.
43 GreyK
 
06.02.22
16:57
(42) У того, кто составлял это задание, мысли тоже не из головы рождались )
44 NIGHTHUNTER
 
07.02.22
08:07
(41) Вы флудераст?
45 NIGHTHUNTER
 
07.02.22
08:10
(43) По поводу заданий, не имею возможности вызванным быть на дискуссию.
Этот код решений с авторитетного источника.
И если что то в нем не так.
Я даже не буду вы\являть что, и вдаваться в подробности.
Так как я лишь смотрю, и повторяю. тренируюсь.
В надежде на то что со временем разовью мышление и часть моментов будет очевидной.
Но вот. в данный момент. Я даже не вижу там того что ты тут говоришь.
И считаю что там все в порядке.
Двигаясь дальше в подготовке.
Возможно проходя это в следующие разы, буду встречаться с какими то очевидно не теми вещами. Наподобе того что говоришь тут ты.
Но сейчас я такого не вижу. и знать не знаю, Что что то тут не так.

Вопрос, был вообще в другом.
46 Мимохожий Однако
 
07.02.22
08:20
(45) Продолжай...Я бы не смог так описывать свои поиски решений. Учусь у тебя.
47 acht
 
07.02.22
08:24
(41) > Вы флудераст?
Милота-то какая, Андрей выучил новое слово!
Правда еще традиционно не осознал, что оно значит и как это работает.
48 ФААД
 
07.02.22
08:25
По моему это очередное порождение Еврейчика.
49 acht
 
07.02.22
08:38
(48) Не. Еврейчику такое упорство и не снилось.
50 NIGHTHUNTER
 
07.02.22
08:45
(46) Смогли бы, на моем месте. Когда бы вы поняли что вы превращены в решето. В прямом смысле. Весь в дырках. И они продолжают появляться регулярно и с новой силой. Вы смогли бы !!!
51 Мимохожий Однако
 
07.02.22
09:12
(50) Эмоции помогают при физических нагрузках. При нагрузках умственных эмоции только мешают. Спасибо за поддержку. Желаю заменить решето крепким туеском и быть более спокойным в поисках решений.
52 NIGHTHUNTER
 
07.02.22
13:19
(51) Тут видите в чем дело??!!
от меня вообще ничего не зависит.
Я лишь желаю, хочу и делаю. С добром позитивно начинать каждый день. Устраняя что либо негативное.
На меня наваливается так, что дается понять. Что сейчас моими же руками, идет уничтожение моего мира. Меня и моих близких.
Причем, это было всю жизнь. Но сейчас дается понять, что ты не выгребешь. В смысле я. И меня честно шарашит, это не знаю как.
Я не буду вдаваться в подробности. Но, сам я из того что появляется. Заказывал только позитивное.

Ладно, спасибо вам и всем. Занимаюсь далее.