я создаю внешний отчет, с помощью скд в 1с. отчет называется "просроченные паспорта"
мне необходимо создать пользовательские поля, в которых будут происходит проверки. в таких полях пишут на языке языка компоновки.
у меня есть следующие поля: фамилия, имя, отчество, подразделение, серия документа, номер документа, датавыдачи, датарождения.
1. если паспорт выдан ранее чем в 2012 году, его нужно было меня в 25 лет, в 45, когда получаешься паспорт в 45 то следующий раз его нужно было бы менять в 100 лет.
2. если паспорт выдан позже 2012 года, то его срок годности 10 лет, но когда человеку исполняется 64 года, то следующий раз паспорт нужно менять в 100 лет
сейчас конфигуратор ругается на ошибку синтаксиса
Выбор
Когда ДатаВыдачи < '01.08.2012'
Выбор
Когда Год(ТекущаяДата()) - Год(ДатаРождения)< 25
Тогда
ДобавитьКДате(ДатаРождения, "год", 16)
Иначе Когда Год(ТекущаяДата()) - Год(ДатаРождения)>= 25 И Год(ТекущаяДата()) - Год(ДатаРождения) < 45
Тогда
ДобавитьКДате(ДатаРождения, "год", 25)
Иначе Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 45
Тогда
ДобавитьКДате(ДатаРождения, "год", 45)
Иначе
Истина
Конец
КонецВыбора
Тогда
Истина
Иначе
Выбор
Когда Год(ТекущаяДата()) - Год(ДатаРождения) < 64
Тогда
ДобавитьКДате(ДатаРождения, "год", 10)
Иначе Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 64
Тогда
ДобавитьКДате(ДатаРождения, "год", 100)
Иначе
Истина
Конец
КонецВыбора
Истина
Конец
мне необходимо создать пользовательские поля, в которых будут происходит проверки. в таких полях пишут на языке языка компоновки.
у меня есть следующие поля: фамилия, имя, отчество, подразделение, серия документа, номер документа, датавыдачи, датарождения.
1. если паспорт выдан ранее чем в 2012 году, его нужно было меня в 25 лет, в 45, когда получаешься паспорт в 45 то следующий раз его нужно было бы менять в 100 лет.
2. если паспорт выдан позже 2012 года, то его срок годности 10 лет, но когда человеку исполняется 64 года, то следующий раз паспорт нужно менять в 100 лет
сейчас конфигуратор ругается на ошибку синтаксиса
Выбор
Когда ДатаВыдачи < '01.08.2012'
Выбор
Когда Год(ТекущаяДата()) - Год(ДатаРождения)< 25
Тогда
ДобавитьКДате(ДатаРождения, "год", 16)
Иначе Когда Год(ТекущаяДата()) - Год(ДатаРождения)>= 25 И Год(ТекущаяДата()) - Год(ДатаРождения) < 45
Тогда
ДобавитьКДате(ДатаРождения, "год", 25)
Иначе Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 45
Тогда
ДобавитьКДате(ДатаРождения, "год", 45)
Иначе
Истина
Конец
КонецВыбора
Тогда
Истина
Иначе
Выбор
Когда Год(ТекущаяДата()) - Год(ДатаРождения) < 64
Тогда
ДобавитьКДате(ДатаРождения, "год", 10)
Иначе Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 64
Тогда
ДобавитьКДате(ДатаРождения, "год", 100)
Иначе
Истина
Конец
КонецВыбора
Истина
Конец
По теме из базы знаний
- Веб-сервер многопоточный с обработкой запросов в коде 1С (1C.Net:Предприятие)
- Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии
- Исправление ошибки подключения внешнего отчета в БГУ 2
- Найти и уничтожить. Популярные уязвимости в проектах 1С
- Статический анализатор кода проектов 1C (EPF, ERF, CF, CFE)
Найденные решения
После каждого "Когда" должно идти условие и ключевое слово "Тогда", у вас после второй строки нет слова "Тогда"
Не верная конструкции "Иначе Когда", надо использовать "Иначе Выбор Когда"
"КонецВыбора" - нет такого ключевого слова, надо использовать "Конец"
еще нельзя использовать символ перевода строки
ну и по мелочи, но это уже видимо из-за того что, не там и не то вставили
попробуйте
должно сработать без синтаксических ошибок, а уж логику, извините, я не проверял
Не верная конструкции "Иначе Когда", надо использовать "Иначе Выбор Когда"
"КонецВыбора" - нет такого ключевого слова, надо использовать "Конец"
еще нельзя использовать символ перевода строки
ну и по мелочи, но это уже видимо из-за того что, не там и не то вставили
попробуйте
Выбор Когда ДатаВыдачи < ДатаВремя(2012, 8, 1) Тогда Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения)< 25 Тогда ДобавитьКДате(ДатаРождения, "год", 16) Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения)>= 25 И Год(ТекущаяДата()) - Год(ДатаРождения) < 45 Тогда ДобавитьКДате(ДатаРождения, "год", 25)Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 45 Тогда ДобавитьКДате(ДатаРождения, "год", 45) Иначе Истина Конец Конец Конец Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения) < 64 Тогда ДобавитьКДате(ДатаРождения, "год", 10) Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 64 Тогда ДобавитьКДате(ДатаРождения, "год", 100) Иначе Истина Конец Конец Конец
должно сработать без синтаксических ошибок, а уж логику, извините, я не проверял
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
После каждого "Когда" должно идти условие и ключевое слово "Тогда", у вас после второй строки нет слова "Тогда"
Не верная конструкции "Иначе Когда", надо использовать "Иначе Выбор Когда"
"КонецВыбора" - нет такого ключевого слова, надо использовать "Конец"
еще нельзя использовать символ перевода строки
ну и по мелочи, но это уже видимо из-за того что, не там и не то вставили
попробуйте
должно сработать без синтаксических ошибок, а уж логику, извините, я не проверял
Не верная конструкции "Иначе Когда", надо использовать "Иначе Выбор Когда"
"КонецВыбора" - нет такого ключевого слова, надо использовать "Конец"
еще нельзя использовать символ перевода строки
ну и по мелочи, но это уже видимо из-за того что, не там и не то вставили
попробуйте
Выбор Когда ДатаВыдачи < ДатаВремя(2012, 8, 1) Тогда Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения)< 25 Тогда ДобавитьКДате(ДатаРождения, "год", 16) Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения)>= 25 И Год(ТекущаяДата()) - Год(ДатаРождения) < 45 Тогда ДобавитьКДате(ДатаРождения, "год", 25)Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 45 Тогда ДобавитьКДате(ДатаРождения, "год", 45) Иначе Истина Конец Конец Конец Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения) < 64 Тогда ДобавитьКДате(ДатаРождения, "год", 10) Иначе Выбор Когда Год(ТекущаяДата()) - Год(ДатаРождения) >= 64 Тогда ДобавитьКДате(ДатаРождения, "год", 100) Иначе Истина Конец Конец Конец
должно сработать без синтаксических ошибок, а уж логику, извините, я не проверял
ДобавитьКДате(ДатаРождения, "год", 16) строку к дате добавляете? кавычки не нужны
ТекущаяДата() в запросе работать не будет, в качестве параметра ее передавать нужно.
Вообще конфигуратор должен бы писать, что именно не нравится ему.
ТекущаяДата() в запросе работать не будет, в качестве параметра ее передавать нужно.
Вообще конфигуратор должен бы писать, что именно не нравится ему.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот