-

Дата прописью в 1С

0
2515
30.10.2020 Иван Каплин

Содержание:

1.       Необходимость написания даты прописью 1С

2.       Описание правил склонения в самостоятельном алгоритме  


1.    Необходимость написания даты прописью 1С


Перед разработчиками периодически ставят нетривиальные задачи, связанные скорее с удобством для пользователя. Одной из таких задач является дата прописью в 1С. С одной стороны, для хозяйственного учета это не является вещью первостепенной. С другой стороны, некоторые печатные формы документов 1С могут содержать в себе Дату прописью (различные накладные, Наряд-допуск для производства, Договор или дополнительное соглашение с указанием прописной даты и так далее).

 

Решить такую задачу можно двумя путями:


1.     Простой, но имеющий ограничения: это использование при формировании даты прописью 1С подсистемы «Склонение представлений объектов» из набора «Библиотеки стандартных подсистем» в 1С (в большинство типовых конфигураций такая подсистема встроена). Так как подсистема универсальна и использует веб-сервис «Морфер», для ее работы требуется подключение к сети (что и является ограничением даже сегодня, ведь не везде возможно подключение к сети, иногда, в целях информационной безопасности).


2.     Сложный, но трудоемкий в реализации: это написать самостоятельно все правила склонений Даты, но придется указать ограничения в пределах 9999 года.

 

По простому пути идти рекомендуется в связи с возможностью использования веб-сервиса, а также для получения корректных данных (у сервиса меньше вероятности ошибки склонения).

 

Об использовании подсистемы «Склонение представлений объектов» есть достаточно подробные статьи, например, моего коллеги Алексея Болдонова (читать здесь). Однако цель текущей статьи – показать пример написания алгоритма в программе 1С.  


2. Описание правил склонения в самостоятельном алгоритме


Для того чтобы написать число прописью, потребуется предварительно составить порядок действий для сложных и простых случаев.

 

Очертим некоторые допущения:


1. согласно нормам русского языка в названии года могут использоваться как порядковые числительные, так и количественные, но, рассматривая текущий пример, мы несколько упростим правила для лучшего понимания примера самостоятельного алгоритма;


2. важно помнить, что для неодушевленных предметов вопрос для именительного падежа будет такой же, как и для винительного, поэтому последний мы указывать в таблице не будем;


3. в примере будет использована формула: для числа с двумя и более знаками все цифры (кроме нуля) будут взяты в именительном падеже, кроме последней (кроме нуля), которая будет взята в родительном падеже;


4. в примере будет рассмотрена упрощенная модель написания даты (месяца) прописью, не берущая во внимание исключения и из правил русского языка.

 

В прописной дате можно выделить следующие основные блоки чисел прописью на русском языке:

·        число дня;

·        число месяца прописью;

·        число года.


Начнем с простого – число месяца прописью. Для месяца всегда будет использован Родительный падеж, поэтому можно зафиксировать 12 значений в любом удобном виде (массив, список значений, соответствие и иное) используя метод Месяц(), который возвращает числовое значение месяца, поэтому как Ключ записи 1С может использовать число месяца прописью, а как значение записи – наименование месяца в Родительном падеже (для массива ключом записи в 1С может служить индекс значения).

 

Теперь можно разбирать сложное: числа дня и года. К сожалению, сделать для дня и года какие-то пересекающиеся алгоритмы довольно проблематично (мало пересечений), поэтому сначала разберем день, потом год, рассчитывая, что для них самостоятельный алгоритм будет совершать отдельные операции.

 

Чтобы мы методом подбора могли брать правильные значения, необходимо создать таблицу значений, где в названии колонок укажем падежи и само значение, и таким образом заполним некоторые данные для нашего алгоритма. Для создания своей наработки можно использовать Регистр сведений 1С 8, но это больше подходит тем пользователям, кому потребуется широко использовать возможности склонений в повседневной работе.

 

Число дня

Мы можем разбить число дня на две части: единицы и десятки. При этом мы должны понимать, что каждый раз необходимо выделять саму «цифру» дня или года, и ее «позицию».

 

Итак, зададим переменную и первые несколько строк значений:


написания даты прописью 1С


И так далее аж до 19-го числа. Начиная с 21-го числа, мы сможем комбинировать значение «двадцать», и «первое», «двадцать», и «второе», «двадцать», и «третье» аж до 99-го:


комбинировать значение в 1С


Для уменьшения количества строк, мы можем пойти следующим путем:


1. для значений от одного до двадцати используем уникальные значения склонений;


2. для значений внутри десятков, начиная со второго, мы будем пользоваться формулой: число дня >= 21 и < 30; значение 21 + значение дня, взятое из второй части цифры дня, например, 25 >= 21 и < 30, значит «двадцать» + «пятое» (всё в именительном падеже).

 

Используя метод День(), мы можем получить числовое выражение дня, что нам поможет в алгоритме.

 

При этом можно использовать условие (чтобы было проще понимать):


Используя метод День()


Так как до сотни значения будут повторяться, считаем, что с ними мы закончили. Для придания универсальности (то есть использования как дней, так и лет), можно добавить условия и заключить в функцию:


добавить условия 1с


Таким образом, мы получаем значение числа прописью для дня – в Именительном падеже, а для года (от первого до девяносто девятого) – в Родительном падеже.

 

Так как с днями мы разобрались, настал черед годов. Мы разобрали значения лет от одного до девяносто девяти, теперь же разберем состав сотен лет:


заключить в функцию


При этом следует учитывать, что если в указанном году нет десятков или единиц, то мы подставляем значение «Какого». Если есть десятки или единицы, то – «Какой». Через условие можно это указать и заключить в функцию:


подставляем значение в 1с


При написания тысяч ситуация будет схожей, а само заполнение будет выглядеть так:


Дата прописью в 1С


Таким же образом заключим условия для выбора в функцию 1С 8:


выбор в функцию 1С 8


Соединяя полученные функции 1С 8, мы сможем из даты получить все, что нам потребуется, чтобы собрать результат в одну строку:


функции 1С 8


Итак, мы разобрали сначала день, потом месяц. Год мы разобрали по частям: десятки лет, сотни лет и тысячи лет. И уже после собрали все в одну строку.

 

Вот таким объемным способом можно самостоятельно создать функцию даты прописью в 1С, но, конечно, следует учитывать ограничения.

 

Для более гибких функции в 1С 8 лучше всего создать отдельный словарь в Регистре Сведений 1С, и использовать более сложный алгоритм, учитывающий необходимые склонения. Однако и в этом случае универсальность такой функции достаточно ограничена.

 

Специалист компании «Кодерлайн»

Иван Каплин

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
# абота Риелторского Агентства # Управление торговлей 11 #Работа Риелторского Агентства # 1C # CRM-система # Cинтаксис-помощник # Cинхронные методы работы # PDF документами # PowerShell # XML-файл # Бизнес-процесс # Глубина анализа # Графические объекты # Динамический список # Документ заполнен # Документ Отбор (размещение) товаров # Документ Отгрузка товаров ИС МП # Документ Приобретение товаров и услуг # Документ УПД # Доступ на ТСД # ДтКт # ЕАЭС # Закладка Администрирование # Зарплата и кадры # Имя таблицы # ИТС # Кабель NYM(Севкабель) 3x5.5 # Книга учета доходов и расходов # Курс валюты # Лицо с правом подписи # Лицо, имеющее право подписи документов # Маркировка цифровыми кодами # Минимальные цены продажи в 1С # Настройка НСИ и разделов # Настройка ценообразования # НДФЛ # Нематериальные активы # Обмен электронными документами # Оплата через банк # Основное ответственное лицо организации # Перемещение ТС и оборудования # Проведение инструктажа # Продажи или Закупки # Прочие доходы # Пункт Подключить обработки # Пункт Сервис # ПФР и ФФОМС # Работа ТС # Расчет налога УСН # Расчетные счета # Система «Честный знак» # Система GS1 # Списание на расходы # Справка-расчет налога УСН # Страховые взносы # Таблица формы # Таблица формы «Сотрудники» # Товары # Установка цен на товары # Формат Цифровой Маркировки # Функция Дата # Функция ДеньГода # Функция ДеньНедели # Центральный Банк России # Цены номенклатуры 2.5 # Элементы #1.6-НДФЛ #1С Бухгалтерия #1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Модули #1С: Платформа #1С: Предприятие #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #1С:ERP #1С:БГУ #1С:БП #1С:Риелтор #1С:Управление холдингом #1С.6-НДФЛ #ADO #APACHE #API #canonical #com-объекты #Cправочник БИК #Excel #Excel в 1С #GoogleDrive #Googleаккаунт #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #PDF #WEB #WEB-сервисы 1С #Word #WS-ссылки #XDTO-объект #XML #XML-обмен #Администрирование 1С #Адрес URL описания #акты в 1С #Банковские счета #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бухгалтерская отчётность в МСФО #Бюджетирование #Вид Характеристики #Вкладка Документы #Внедрение #Внедрение ERP #Внешний вид формы #Выбор каталога #Выбранные файлы #Документ Отпуск #Документ1 #Журналы #Загрузить Значения #Загрузка цен в 1С #Задача для 1С #Закладка Торговля #Закрытие месяца #Заменить #Запись регистра сведений #Запросы 1С #Интеграция 1С #Интервал dpi #История пользователя #Кадровые документы #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Карточка Объекта недвижимости #Классификаторы и курсы валют #Клиент-серверная схема #Код ЦМТ #Конвертация данных #Контроль документов #Конфигурация 1С #Конфигурация 1С ЗУП 3.1 #Копирование настроек пользователей #Корпоративное сопровождение #Лизинг #Лицензии 1С #Лицензионный договор #Личные документы #Массив Номенклатур #Массовая регистрация отгулов #Меню Отчет #Механизм Анализа Данных в 1С #Моделирование #Модуль Диадок #МРОТ #МСФО #Налоги #Начисления Арендной платы #Новый Массив #Обмен между базами #Обновления #Общие ознакомительные рассылки #Операции в 1С #Оптимизация #Организация #Отпуск #Отчетность #Отчеты в 1С #Оформление перевода работника #Оценка задач #Параметр «Количество» #Партнер #Передача неисключительных прав #Перенос данных #Перенос цен из Excel в 1С #Периодичность ДЕНЬ #Периодичность МЕСЯЦ #Печатная форма документа #Планирование #Поле Ввода Значение Субконто #Полезные обработки #Пользовательский режим #Правила обмена #предопределенные элементы справочников #Прием на работу #Принцип работы 1С #Проводки 1С #Программа 1С #Программирование в 1С #Программные права #Продажа ТМЦ #Продажи #Продление #Производство #Просмотр #Путь к файлу #Работа с объектами в 1С #Раздел Справочники #Расторжение #Расчет зарплаты #Расчетные документы #Расширение конфигурации #Регламентированная отчетность #Режим РИБ #Результаты поиска #Реквизит «СпЗнч» #РСБУ #С # #Сдельный заработок #Сервис-деск #СЗВ-СТАЖ #СКД #Служба ИТ #Служба НСИ #Соединение COM в 1С платформе #Соединение СОМ в 1С платформе #Сравнение конфигураций #Счет-фактура #Текущая Строка #Территориальная привязка #Территориальные рамки #Тестирование 1С #Техническое задание #Типы данных ссылки #Торговое оборудование #Транспортная логистика #Управление проектами #Установка цен номенклатуры #Финансовый учет #Формат MicrosoftExcel #Функционал МРМ #Х-точка #Характеристики Товаров #Хранилище настроек #Хранить историю изменений #Ценообразование #Чтение #Экзамен 1С #электронные подписи #Яндекс-диск или Google-диск #Яндекс.Касса 1С под Linux 1С:УНФ Email или телефон Работа с объектами в 1С Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.