Имя: Пароль:
1C
1С v8
Проверка поля сумма по виду документа 1С Документооборот 8 КОРП 2.1
0 NoWEEchok
 
16.07.19
13:16
Есть внутренний документ и там, при создании нового, в реквизитах этого док-та есть поле "сумма" и есть поле со списком "Вид документа", где содержатся множества видов док-тов. как сделать проверку что если в поле сумма значение = 0, то выдавало бы сообщение и запрещало бы запись документа. Собсна саму проверку я знаю как написать, а как ее привязать по виду документа, например "Закупочная документация" я не шарю. Есть идеи, господа?

Ну проверка у меня на данный момент сейчас такая:
Если Сумма > 0 Тогда
    СуммаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Сумма, Валюта);
Иначе
    Сообщить("Сумма равна "+Сумма+"."+"Запись невозможна!");
        Отказ = Истина;
КонецЕсли;
1 Джинн
 
16.07.19
13:29
Вид документа - это элемент справочника. Соответственно обращаться к нему нужно как к обычному элементу. В идеале как к предопределенному. Менее идеально - добавить какой-то реквизит, закрытый от изменения и поиском по реквизиту находить. Через жпо еще можно - поиском по коду или наименованию.
2 NoWEEchok
 
16.07.19
13:41
(1) ах да, забыл уточнить. я работаю в типовой конфигурации, тобишь через расширение... и что такое ЖПО? :)
3 dka80
 
16.07.19
13:57
Вид документа - элемент справочника Виды внутренних документов.
Если ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Закупочная документация") Тогда
далее твой код
КонецЕсли;

Кстати, НайтиПоНаименованию как раз и есть то самое ЖПО, потому что завтра могут переименовать и твой код работать не будет
4 NoWEEchok
 
17.07.19
09:22
(3) все почти получилось, но есть одно но: ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Закупочная документация") возвращает Ложь, хотя в отладке если смотреть в ВидДокумента содержит (Закупочная документация) в значении и Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию тоже самое.
Очень странная получается ситуация
5 dka80
 
17.07.19
12:08
(4) типы значений проверь. Также проверь коды у значений (может у тебя дублируется вид)
6 Джинн
 
17.07.19
12:15
(4) Вы все-таки решали через жпо сделать? И небось на клиенте ищете по наименованию?
7 NoWEEchok
 
17.07.19
13:19
(5) Значение одинаковые, и типы тоже.
(6) На сервере
8 Джинн
 
17.07.19
13:40
(7) Не верю. Что-то Вы темните. Если элемент не найдет, то возвращается не Ложь, а Неопределено.
9 NoWEEchok
 
17.07.19
13:47
(8) вот кусок кода

СтрокаНаименования = "Заявка на закупку";
    ИскомыйВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию(СтрокаНаименования);
    
    Если Сумма = 0 и ВидДокумента = ИскомыйВидДокумента Тогда
        Сообщить("Сумма равна "+Сумма+"."+"Запись невозможна!");
        Отказ = Истина;

        КонецЕсли;

Где Выражение Сумма = 0 Истина, а Выражение ВидДокумента = ИскомыйВидДокумента Ложь;
Свойство(ВидДокумента)/Значение(Заявка на закупку)/Тип(СправочникСсылка.ВидыВнутреннихДокументов;
Свойство(ИскомыйВидДокумента )/Значение(Заявка на закупку)/Тип(СправочникСсылка.ВидыВнутреннихДокументов;

Где ошибка?
10 Джинн
 
17.07.19
13:51
(9) Точно значения равные? Дублей не наплодили в справочнике?
11 NoWEEchok
 
17.07.19
13:55
(10) а по конкретнее. про какие дубли идет речь
12 Джинн
 
17.07.19
13:58
(11) Несколько "Заявка на закупку". НайтиПоНаименованию находит не тот элемент, который Вам нужен. Или в ВидДокумента у Вас не то указано.
13 NoWEEchok
 
17.07.19
14:03
(12) а как это исправить? дубли я пометил на удаление, но условие все равно не выполняется
14 NoWEEchok
 
17.07.19
14:04
(12) и как в дальнейшем избежать такого рода ошибок? сделать поиск не по наименованию а другим методом?
15 Джинн
 
17.07.19
14:23
(14) Я же писал про решение через жпо :) А выше были варианты решить нормальным путем.

Могу к ним еще один вариант добавить - http://catalog.mista.ru/public/275145/
16 NoWEEchok
 
17.07.19
14:33
(15) а как сделать ВидДокумента предопредленным? он ведь типовой, а я работаю в расширении, или я чего то не понимаю...
17 Джинн
 
17.07.19
14:37
(16) Предопределенным только через правку конфигурации. Остальные способы в Ваших руках.
18 NoWEEchok
 
17.07.19
15:01
(17) Менять нельзя ничего. Хорошо как через ЖПО исправить эту ошибку?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс