Имя: Пароль:
1C
 
Как найти процедуру?
,
0 Zombi
 
09.02.17
13:49
Чувствую, отстаю от жизни... Есть общепит, он на основе БП 3.0. В инвентаризации товаров жмем "Перезаполнить учетные количества и суммы" вроде он по этой кнопке должен учетные данные перезаполнить, а строки, руками добавленные не трогать, а строки удаляются. Лезу в модуль, в форме на этой команде висит такой код:

Процедура ПерезаполнитьУчетныеДанные(Команда)
    
    Если Объект.Товары.Количество() = 0 Тогда
        Возврат
    КонецЕсли;
    
    ТекстВопроса = НСтр("ru = 'Перезаполнить учетные количества и суммы? %ПредупреждениеОЗаписиДокумента%'");
    ТекстВопроса = СтрЗаменить(ТекстВопроса, "%ПредупреждениеОЗаписиДокумента%",
        ?(Модифицированность, Символы.ПС + НСтр("ru='(Перед заполнением документ будет записан!)'"),
        ""));
    Оповещение = Новый ОписаниеОповещения("ВопросПерезаполнитьУчетныеДанныеЗавершение", ЭтотОбъект);
    ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Заголовок);
    
КонецПроцедуры

А дальше не пойму, как найти процедуру? В модуле объекта и в модуле менеджера нашел похожие процедуры, но на них точка останова не срабатывает.
1 Metman
 
09.02.17
13:51
Я бы через замер производительности посмотрел.
2 polosov
 
09.02.17
13:53
(0) А в модуле формы?
3 polosov
 
09.02.17
13:54
+(2) По логике в типовых процедуры типа ...Завершение идут за процедурами и функциями, в которых происходит их описание.
4 1Снеговик
 
гуру
09.02.17
13:55
ВопросПерезаполнитьУчетныеДанныеЗавершение
5 1Снеговик
 
гуру
09.02.17
13:55
Где-то рядом должна быть)
6 polosov
 
09.02.17
13:57
(4) Да он судя по всему ее просто в модуле формы не искал.
В ОписаниеОповещения("ВопросПерезаполнитьУчетныеДанныеЗавершение", ЭтотОбъект); явно же указано, что в форме должна лежать.
7 aka AMIGO
 
09.02.17
13:57
Есть еще и Стек вызовов.. Советовали тут недавно..
Правда, я не смог им воспользоваться :)
8 Zombi
 
09.02.17
13:58
(4) Остановился в этой процедуре, стеком вызовов ничего не видит.
9 Zombi
 
09.02.17
13:59
А, во нашел Процедура ЗаполнитьДокументНаКлиенте(НазваниеДействия)
    
    Если ИспользуетсяОтложенноеПроведение Тогда
        СтатусКорректировкиСтоимости = СтатусКорректировкиСтоимостиНоменклатуры(Объект.Организация, Объект.Дата);
        ОпределитьНеобходимостьАктуализацииСебестоимости(НазваниеДействия, СтатусКорректировкиСтоимости);
    Иначе
        ЗаполнитьПоАктуальнымОстаткам(НазваниеДействия, Ложь);
    КонецЕсли;
    
КонецПроцедуры
10 Zombi
 
09.02.17
14:05
Вот здесь все делается:

    Обработки.ЗакрытиеМесяца.ПрочитатьРезультатЗаполнения(АдресХранилища, РезультатЗаполнения, Объект);


Вот жесть. Перезаполняем учетные количества в инвентаризации.
11 Zombi
 
09.02.17
14:19
Задание = ДлительныеОперации.ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяЭкспортнойПроцедуры,
            ПараметрыЭкспортнойПроцедуры, КлючЗадания, НаименованиеЗадания);

В этой строке ИмяЭкспортнойПроцедуры = "Документы.ИнвентаризацияТоваровНаСкладе.ЗаполнитьПоОстаткам" и если я жму "Запонить по остаткам" и если жму "Перезаполнить учетные количества и суммы". И результат получается одинаковый. Вроде это не общепитовская дописка. Не пойму, косяк БП что ли?
12 Deon
 
09.02.17
14:24
(11) А ПараметрыЭкспортнойПроцедуры тоже одинаковые?
13 Zombi
 
09.02.17
14:26
(12) Да вот смотрю дальше в параметрах различия. А как в фоновом задании отладчиком остановиться? Что то не останавливается по точке останова.
14 Deon
 
09.02.17
14:27
(13) Меню Отладка - Подключение - Автоматическое подключение - Фоновые задания
15 Zombi
 
09.02.17
14:31
(14) Спс. буду дальше ковырять
16 Zombi
 
09.02.17
14:40
Нашел замечательную дописку общепита:

        //+Общепит
        // Пропустить группы. Группы в выборке есть при иерархической сортировке.
        Если Выборка.КоличествоУчет = 0 И Выборка.СуммаДляЦены = 0 Тогда
            Продолжить;
        КонецЕсли;
        //-Общепит

И без условий, заполнение это по остаткам или перезаполнение учетных сумм.
17 Вафель
 
09.02.17
14:54
сделай замер производительности и все строки увидешь
18 Zombi
 
09.02.17
14:55
(17) Да нашел уже все.