Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проверка поля сумма по виду документа 1С Документооборот 8 КОРП 2.1

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

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

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

        КонецЕсли;

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.