Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 июн 2021, 20:11

Документ и ДокументОснование.

Автор Алексей25, 27 мар 2017, 10:18

0 Пользователей и 1 гость просматривают эту тему.

Алексей25

Аллоха!

Есть проблема, точнее мое непонимание.

Есть два документа, один из них документ основание. Так вот, если в документе оснвоание поле а1 = Муке, то во втором документе должно произойти то-то то-то.
И так всего два условия, но вот в чем проблема, он полностью игнорирует условие Тогда и сразу переходит на Иначе

Пробовал так:

Если Объект.ДокументОснование.Контрагент= "Михалков" Тогда

ВызватьИсключение "Работает!";

иначе

ВызватьИсключение "Не работает!";

КонецЕсли;

ИЛи пробовал даже так(в документе основания тоже создал реквизит Контрагент и заполнял его через документ основание.


Объект.Контрагент = Объект.ДокументОснование.Контрагент;
Если Объект.Контрагент= "Михалков" Тогда

ВызватьИсключение "Работает!";

иначе

ВызватьИсключение "Не работает!";

КонецЕсли;


Но во всех случаях игнорирует условие Тогда, и не важно какое условие стоит.
В чем может быть проблема?
Сначала думал, что не мог обращаться к документу основание, но после создания реквизита во втором документе и передачи туда данных все работало, но условие так и не заработало, и в этот момент я вообще запутался.

alex0402

Цитата: Алексей25 от 27 мар 2017, 10:18Если Объект.ДокументОснование.Контрагент= "Михалков" Тогда

попробуй
Если Строка(Объект.ДокументОснование.Контрагент)= "Михалков"

или

Если "Михалков" = Объект.ДокументОснование.Контрагент

или

Если Объект.ДокументОснование.Контрагент.Наименование = "Михалков"

а вообще так делать нельзя. В коде должны сравниываться только ссылки.

Ну или дай объявление в местной газете, о том, что наименования контрагентов изменять нельзя
Спасибо за Сказать спасибо

Алексей25

Спасибо!
Добавлено: 27 мар 2017, 11:45


Цитата: alex0402 от 27 мар 2017, 10:44а вообще так делать нельзя. В коде должны сравниываться только ссылки.

А как тогда мне лучше сделать? Не объяснишь?

Norfolk

Цитата: Алексей25 от 27 мар 2017, 11:29
Спасибо!
Добавлено: 27 мар 2017, 11:45


Цитата: alex0402 от 27 мар 2017, 10:44а вообще так делать нельзя. В коде должны сравниываться только ссылки.

А как тогда мне лучше сделать? Не объяснишь?
Можно как минимум использовать конструкцию НайтиПоКоду
Объект.ДокументОснование.Контрагент.НайтиПоКоду("Ваш код");
код в 1с то я думаю меньше подвержен к изменениям, чем наименование.

alex0402

Например так

можно и по коду, действительно меньше подвержен изменениям, более того можно запретить программно.
Спасибо за Сказать спасибо

Алексей25

Цитата: alex0402 от 27 мар 2017, 12:19
Например так

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

Спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск