Довольно редко использую, потому забываю постоянно, вот сделал себе очередную шпаргалку, как делается кнопка выбора периода в 1с на управляемых формах. Итак, первым делом создайте реквизит формы, с типом «стандартный период»:
Далее, перетаскиваем этот реквизит на форму, и добавляю обычные реквизиты с типом Дата+Время:
Осталось всего ничего — добавить обработчик события «при изменении»:
Довольно часто встречающаяся задача: затененный задний фон модального окна или элемента веб страницы.Решается задача довольно просто, с использованием псевдоэлементов :before и :after. Обращаю внимание, что их можно использовать только в парных тегах вида <div></div>, и соответственно нельзя в тегах вида input (т.е. не парных). Еще одним нюансом является то, что значение свойства display может быть только: block, inline, none, list-item. Все остальные значения будут трактоваться как block.
Например задача получить страницу вида:
Решается примерно так: сначала определим стили CSS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
.application:before{
content:'';
position:fixed;
z-index:2;
top:0;
left:0;
right:0;
bottom:0;
background:url(http://ultraimg.com/images/Ho6hQWs.jpg) center no-repeat;
С недавних пор обнаружил, что на моёй виртуальной машине, где размещается сайт, как-то подозрительно быстро заканчивается место на жестком диске. Проведя небольшое расследование, обнаружил, что главный виновник — бинарные логи mysql. Странно конечно, потому что в конфигурационных файлах mysql настройка log-bin отключена:
И вестись они в принципе не должны. Вообще, бинарные логи обычно нужны только в том случае если:
настроена репликация с другим сервером
необходимо иметь возможность восстановить поврежденную базу данных (вдруг бекапы не делаете)
В остальных случаях она не нужна. Хм.. ну уже если отключить не удаётся, по неизвестной причине, то можно ограничить накопление логов ключами:
max_binlog_size =100M — ограничить размер файла логов 100 мегабайтами
Чуть погуглив, обнаружил, что в свежих версиях mysql логи отключаются теперь другим ключем: disable-log-bin
Однако.. что делать с файлами логов, если они не были отключены и накопились? Удалять их руками черевато возникновением ошибок. Поэтому лучше войти в консоль mysql и выполнить следующую команду:
1
RESET MASTER;
Ну и на всякий случай, удалить логи старше Х дней можно вот так:
1
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(),INTERVAL5DAY);
Могу порекомендовать еще посмотреть мою старую шпаргалку по MySQL и другие лайфхаки
В виду того, что организация плавно переходит на использование свободных от лицензий шрифтов (и соответственно не попадающих на санкции), то начал работу по переводу некоторых печатных форм в 1С на новые шрифты. Сегодня столкнулся с интересной проблемой, а именно: шрифты при формировании pdf из табличного документа выставляются не верно. Проблема актуальна только при формировании PDF на «сервере». На «клиенте» — всё корректно. Например если в поле табличного документа указать шрифт PT Astra Serif, то в документе pdf они станут ArialMT:
Мало того, даже если при формировании документа прямо указать шрифт…то результат тот же:
Да, тут я попробовал даже использовать относительно новый функционал по сохранению PDF, именно использование формата PDF_A_3, который позволяет добавлять «вложения». Но толкового описания и примеров в сети я не нашел, а документация от 1С очень скудна. Возможно при помощи «вложений» можно прикрепить этот шрифт для использования. Но не факт.
Открыв сформировавшийся файл pdf блокнотом, можно увидеть что платформа 1С даже не пытается упомянуть нужные шрифты:
Хотя если сохранять тот-же самый табличный документ сначала в формат docx, а затем средствами Word сохранить в pdf, то всё отлично сохраняется, и PDF получается корректный:
Ну что я могу сказать? На лицо похоже ошибка в платформе. Будем ждать обновлений, а пока решил проблему формированием файла в формате html5:
Довольно часто по работе приходится писать различного вида скрипты которые выполняются как в консоли, так и при вызове из браузера. Со временем сложился устойчивый стартовый шаблон консольного скрипта на PHP, который собственно и таскаю с сервера на сервер, когда начинаю что-то писать.
Можно конечно использовать для этого различные фреймворки, типа yii, которые предоставляют более удобный для этого функционал, но чаще всего для простых скриптов такого монстра тащить не рационально. Посему имеем то что имеем.
Что тут интересного? Сначала объявляем константу, куда ложим текущий физический путь до выполняемого скрипта. Далее загружаем все классы которые находятся в папке class (ака require_once vendor/autoload.php’ при использовании composer). Потом грузим файл config.php:
1
2
3
4
5
6
7
8
9
10
11
<?php
date_default_timezone_set('Europe/Moscow');// Временная зона по умолчанию
if(isset($argv[0])){// Тестовая
ini_set('display_errors',1);
error_reporting(E_ALL);
define("log_file","dev.log");
}else{// БОЕВАЯ
define("log_file","work.log");
};
В котором прописываем логику определения разных констант в зависимости от переданного аргумента командной строки. Скрипт считает, что если аргумент есть — то значит версия скрипта «Для разработки».
В файле functions.php я добавил наиболее часто используемые мной функции:
PutLog — вывод лога в файл и дублирование в консоль, если скрипт запущен из командной строки
_GET — получение параметра $_GET, если отсутствует, возвращается пусто, или значение по умолчанию
_POST — получение параметра $_POST, если отсутствует, возвращается пусто, или значение по умолчанию
GetIpUser — попытаться получить IP пользователя вызвавшего выполнение скрипта
jsonExit — отдать на выход содержимое в формате json, установить заголовок json и выйти из программы
String2Boolean — преобразовать строку в тип boolean, Например на входе может быть строка «True» или число 1, на выходе будет именно Тип. Функция полезна при работе с JSON, где тип зачастую не определен однозначно.
Ну собственно и всё: этот шаблон консольного скрипта можно использовать на серверах как разместив его в cron, так и просто вызывая его через браузер.