Иногда возникает задача, как определить сколько дней в году на языке 1С. Их есть у нас (с), ну я имею ввиду решение.. Странно конечно, что в 1С нет готовой функции, приходится напрягать мозжечок (ну или гугл/яндекс) и велосипедить. Ну на самом деле есть несколько вариантов, Например первый вариант:
1
2
3
4
5
ФункцияДнейВЭтомГоду()
Дата=ТекущаяДата();
ДнейВГоду=ДеньГода(КонецГода(Дата));
возвратДнейВГоду;
конецфункции
Основан на функциях 1С которые позволяют определить порядковый номер дня по переданной дате. Т.е. передаём в неё последний день текущего года, и получаем или 365 или 366, в зависимости от високосности года.
Есть другой вариант того-же решения:
1
2
3
4
5
6
7
8
ФункцияДнейВЭтомГоду()
Попытка
А=Дата(Год(ТекущаяДата()),2,29);
Возврат366;
Исключение
Возврат365;
КонецПопытки;
КонецФункции
,проверяем наличие 29 Февраля в этом году. Если возникает исключение, значит в этом году 365 дней, иначе — 366.
Есть еще вариант с делением года на 4. Если он делится без остатка, то год високосный. Но там есть исключения для некоторых годов. Ну и самый тупой 😉 способ определить сколько дней в году:
В настоящий момент в 1С нет встроенного средства для редактирования pdf документов, поэтому единственный выход — использовать внешние программы. Например — pdftk или ExtractPagePDF
Задача: получение email пользователя ИБ по известному пользователю конфигурации
При разработке на платформе 1С, в рано или поздно сталкиваешся с данностью, что нужно работать с двумя разными сущностями: пользователь информационной базы (задаётся в конфигураторе), и пользователь справочника «Пользователь» в используемой конфигурации. При использовании стандартной БСП, они обычно связаны между собой при помощи реквизита «ИдентификаторПользователяИБ».
Email пользователя может храниться в двух местах:
В контактной информации пользователя в справочнике Пользователи
Как реквизит Пользователя информационной базы.
И самое удивительное, что они не синхронизируются между собой, т.е. могут быть в принципе и разными.
В моём случае, нужно получение email пользователя ИБ. Решается это так:
1С 7.7 не умеет выбирать все элементы справочника в запросе без группировки по какому то реквизиту. Обычно группируют по Коду. А что делать, если какой-то талантливый программист, решил что поле Код в справочнике например может быть не уникальным? Тогда будем группировать по текущему элементу справочника. Например:
Для того чтобы не изобретать велосипеды, необходимо с генерировать шаблоны файлов плагина. Например при помощи этого сервиса. В моём случае плагин называется ssk_read, поэтому далее везде фигурирует в названиях файлов он.
Получится структура папок вида:
Необходимо поместить все файлы в папку /wp_content/plugins..и собственно на этом моменте плагин уже будет доступен в админке для ативации.
Далее попробуем нарисовать страницу настроек в панели администрирования. Для этого добавим в /admin/class-ssk_read-admin.php в функцию конструкта класса хук добавления пункта меню:
И далее в основном теле плагина skk_read.php добавим функцию register_my_config_page, которая непосредственно регистрирует этот пункт меню к выводу на экран:
На этом этапе пока появится только кнопка «сохранить изменения», потому как мы еще не указали ядру, какие именно настройки мы хотим хранить. Для этого добавим в /admin/class-ssk_read-admin.php в функцию конструкта класса хук инициализации настроек:
1
add_action('admin_init','ssk_read_fields');
И далее в основном классе ssk_read.php добавим функции регистрации полей и их вывода: