Имя: Пароль:
1C
1С v8
Не отрабатывает код
0 MIV 91
 
11.01.22
15:41
Добрый день, подскажите почему код в тестовой базе работает на ура, переношу его на рабочую, а он не отрабатывает в принципе?

&Перед("ПередЗаписью")
Процедура РасшАвтоподстановки_ПередЗаписью(Отказ)
    Если ВидДокумента = Справочники.ВидыИсходящихДокументов.НайтиПоНаименованию("Исходящее письмо") Тогда
        Если НЕ ЗначениеЗаполнено(Подписал) Тогда
            Отказ = Истина;
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Заполните поле ""Подписал""";
            Сообщение.Сообщить();
        КонецЕсли;
        Если БДопСогласующие.Количество() < 1 Тогда
            Отказ = Истина;
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Укажите хотя бы одного дополнительного согласующего!";
            Сообщение.Сообщить();    
        КонецЕсли;
    КонецЕсли;
        
КонецПроцедуры
1 dubolom
 
11.01.22
15:42
У расширения безопасный режим в рабочей отключен?
2 MIV 91
 
11.01.22
15:44
(1) Ага
3 MIV 91
 
11.01.22
15:45
(1) На тестовой, которая в файловом варианте все на ура, рабочая точно такая же, но только клиент-серверная. Почему код игнорится, не пойму
4 dubolom
 
11.01.22
15:46
(3) Может, просто отладка на сервере не настроена?
5 MIV 91
 
11.01.22
15:48
(4) Допустим, но она мне и не нужна, я знаю что код исправен, мне не зачем его отлаживать
6 dubolom
 
11.01.22
15:49
(5) Справочники.ВидыИсходящихДокументов.НайтиПоНаименованию("Исходящее письмо") - неплохо бы посмотреть, чему это равно в отладчике.
7 dubolom
 
11.01.22
15:52
Вообще с поиском по наименованию всегда всё ненадёжно.
8 MIV 91
 
11.01.22
15:54
Ссылку возвращяет, я смотрел по консольке
9 dubolom
 
11.01.22
15:55
(8) В любом случае отладчиком ошибка, скорее всего, поймается.
10 acht
 
11.01.22
15:55
Это в модуле чего код?
11 MIV 91
 
11.01.22
16:00
(9) ее нет в том то и дело
12 MIV 91
 
11.01.22
16:00
(10) справочник исходящие докумены
13 Мультук
 
гуру
11.01.22
16:00
(0) Сократите код до

&Перед("ПередЗаписью")
Процедура РасшАвтоподстановки_ПередЗаписью(Отказ)
     Отказ = Истина;
КонецПроцедуры

Работает ?
14 acht
 
11.01.22
16:02
(12) Модуль объекта или формы?
15 MIV 91
 
11.01.22
16:03
(14) Объекта
16 dubolom
 
11.01.22
16:03
(11) Не отрабатывает же.
Значит, есть.
17 MIV 91
 
11.01.22
16:04
Вроде разобрался, сменил на запрос

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВидыИсходящихДокументов.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.ВидыИсходящихДокументов КАК ВидыИсходящихДокументов
        |ГДЕ
        |    ВидыИсходящихДокументов.Наименование = &Наименование";
    
    Запрос.УстановитьПараметр("Наименование", "Исходящее письмо");
    
    Выборка = Запрос.Выполнить().Выбрать();    
    Выборка.Следующий();    
    
    Если ВидДокумента =  Выборка.Ссылка Тогда
18 MIV 91
 
11.01.22
16:04
(16) Согласен, но!!!! в тестовой нет проблем, сам не пойму
19 MIV 91
 
11.01.22
16:05
(16) Может меня обманули, и на каникулах что то в базе поменяли
20 dubolom
 
11.01.22
16:05
(17) Два одноименных элемента "Исходящее письмо"?
21 acht
 
11.01.22
16:07
(19) У НайтиПоНаименованию есть еще и второй параметр
22 MIV 91
 
11.01.22
16:09
(21) Знаю, но раньше не было таких проблем никогда
23 acht
 
11.01.22
16:11
(22) Теперь есть. Этого достаточно.
24 dubolom
 
11.01.22
16:12
(22) Всё когда-нибудь бывает в первый раз:)
К наименованию лучше по возможности вообще не привязываться, а, если уж привязываешься, исключить все двусмысленности.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший