Итак, устанавливаем минимальный CentOS, настраиваем имена хостов, DNSы и сетевые подключения и приступаем собственно к установке серверных компонентов.
1. Установка Postgre SQL server
Обновление от 03-ноя-2016: в последних версиях CentOS (у меня сегодня был 7.2.1511) отсутствует поддержка libtermcap (и как-то "иначе" реализована libreadline), из-за чего сборки с сайта 1С не устанавливаются - решил поставить сборку от Postgres Professionals https://postgrespro.ru/products/1c_build - вроде работает, но о стабильности и производительности пока судить рано. Так что у кого проблемы с libtermcap.so.2() и/ли libreadline.so.5() при установке PostgreSQL с патчами 1С, можете попробовать этот альтернативный вариант.
Для установки использовался рекомендованный (адаптированный) 1С дистрибутив, для чего потребуется скачать его из раздела поддержки пользователей сайта 1С. В моём случае это был "Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (RPM)", который я сохранил в /root/temp. Распаковываем архив:
[root@vm-sql01 temp]# tar -vxf postgresql-9.2.1-1.1C_x86_64_rpm.tar.gz
Все недостающие зависимости (пакеты) будут установлены в процессе установки этих rpm, хотя на сайте 1С рекомендуют предварительно установить пакеты readline, libtermcap, krb5-libs и openssl, но в моём случае они либо уже были установлены, либо не были обнаружены в репозиториях.
2. Первый запуск Postgre SQL server
В отличии от сценариев установки большинства знакомых мне sql-серверов, postgres требует предварительной инициализации перед запуском, для чего существует два пути - первый, правильный:
[root@vm-sql01 pgsql]# su postgres -c '/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data --locale=ru_RU.UTF-8'
Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres".
От его имени также будет запускаться процесс сервера.
Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8".
Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8".
Выбрана конфигурация текстового поиска по умолчанию "russian".
исправление прав для существующего каталога /var/lib/pgsql/9.2/data... ок
создание подкаталогов... ок
выбирается значение max_connections... 100
выбирается значение shared_buffers... 32MB
создание конфигурационных файлов... ок
создание базы template1 в /var/lib/pgsql/9.2/data/base/1... ок
инициализация pg_authid... ок
инициализация зависимостей... ок
создание системных представлений... ок
загрузка описаний системных объектов... ок
создание правил сортировки... ок
создание преобразований... ок
создание словарей... ок
установка прав для встроенных объектов... ок
создание информационной схемы... ок
загрузка серверного языка PL/pgSQL... ок
очистка базы данных template1... ок
копирование template1 в template0... ок
копирование template1 в postgres... ок
ВНИМАНИЕ: используется проверка подлинности "trust" для локальных подключений.
Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,
--auth-local или --auth-host при следующем выполнении initdb.
Готово. Теперь вы можете запустить сервер баз данных:
Или второй, более простой, но не всегда дающий необходимый результат (зависит от региональных настроек сервера, но у меня иногда приводивший к установке базы данных без поддержки необходимого collation ru_RU.UTF-8):
[root@vm-sql01 pgsql]# service postgresql-9.2 initdb
Инициализируется база данных: [ OK ]
[root@vm-sql01 pgsql]#
В результате была создана структура базы данных (с настройками) в /var/lib/pgsql/9.2/data. Хочу обратить особое внимание на конструкцию --locale=ru_RU.UTF-8, которую необходимо указать при инициализации, иначе сервер может быть инициализирован с неверным набором языковых параметров, что в конечном итоге приведёт к сообщениям
Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных
по причине:
Порядок сортировки не поддерживается базой данных
при установке информационной базы. Теперь можно настраивать автоматический запуск sql-сервера и, собственно, запускать его:
[root@vm-sql01 temp]# chkconfig postgresql-9.2 on
[root@vm-sql01 temp]# service postgresql-9.2 start
Запускается служба postgresql-9.2: [ OK ]
[root@vm-sql01 temp]#
Всё. Для локальных подключений сервер настроен. В моём случае сервер 1С и сервер SQL находятся на разных машинах, поэтому потребуется настроить и удалённые подключения с авторизацией.
В случае каких-то проблем, читаем содержимое файлов:
/var/lib/pgsql/9.2/pgstartup.log
/var/lib/pgsql/9.2/data/postgresql-*.log
Для повышения быстродействия документация PostgreSQL рекомендует как минимум унести журнал /var/lib/pgsql/9.2/data/pg_xlog на отдельный физический том и создать симлинк на него в исходном месте; из личных наблюдений - надо ещё и значительно увеличить размер используемой памяти... но необъятное не охватить, поэтому за статьями по оптимизации работы PostgreSQL для 1С предлагаю обращаться в поисковые системы, а оттуда - на профильные форумы.
3. Настройка пользователей (ролей) Postgre SQL server
Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:
[root@vm-sql01 temp]# su - postgres
-bash-4.1$ cd /usr/pgsql-9.2/bin
-bash-4.1$ createuser --interactive -P
Введите имя новой роли:server1c
Введите пароль для новой роли:
Повторите его:
Должна ли новая роль иметь полномочия суперпользователя? (y - да/n - нет) n
Новая роль должна иметь право создавать базы данных? (y - да/n - нет) y
Новая роль должна иметь право создавать другие роли? (y - да/n - нет) n
-bash-4.1$ exit
logout
[root@vm-sql01 temp]#
В принципе, для обслуживания полезно иметь пользователя с правами суперпользователя - создавать его можно тем же путём.
Теперь осталось разрешить удалённое подключение с авторизацией - для этого в файле /var/lib/pgsql/9.2/data/pg_hba.conf потребуется заменить значение ident на md5 в строке "host all all 0.0.0.0/0 md5" и перезапустить сервис.
Не следует забывать и про настройки iptables - для работы Postgre SQL необходимо открыть как минимум порт tcp 5432, хотя привычнее (да и проще) объявить сетевой интерфейс "внутренним" (разрешить все подключения на интерфейсе).
Для управления сервером потребуется pgAdmin, который можно установить из репозиториев используемого для административных целей линукса, либо скачать с сайта проекта.
4. Установка компонентов сервера 1С
Внимание!!! Для избежания проблем с зависимостями, желательно, чтобы разрядность сервера 1С совпадала с разрядностью используемого дистрибутива Linux! Иначе (если ставим 32-битный 1С на 64-битный Linux), при входе в базу, можно получить сообщение типа "Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена. Часть функций будет недоступна." и клиенты не будут запускаться (хотя конфигуратор - будет). В принципе, я с этой проблемой справился на CentOS 7 (которой не выпускают больше в 32-битном исполнении) - просто поставил не только 'ImageMagick', но и 'ImageMagick.i686' (yum install ImageMagick.i686) - всё заработало (хоть и притянуло за собой гору зависимостей).
Первый шаг установки сервера 1С мало отличается от аналогичного этапа с SQL-сервером - распаковать скачанный дистрибутив сервера командой tar -vxf rpm64.tar.gz. В итоге получим файлы:
1C_Enterprise83-common-8.3.3-715.x86_64.rpm - основные файлы 1С (включая русский и английский интерфейсы)
1C_Enterprise83-common-nls-8.3.3-715.x86_64.rpm - дополнительные языковые модули
Настраиваем автоматический запуск демона и стартуем его:
[root@vh-1c83 temp]# chkconfig srv1cv83 on
[root@vh-1c83 temp]# service srv1cv83 start
Starting 1C:Enterprise 8.3 server: Error: service failed to start!
FAILED
[root@vh-1c83 temp]# service srv1cv83 start
Starting 1C:Enterprise 8.3 server: OK
[root@vh-1c83 temp]#
Хочу обратить внимание - если сразу после установки сервис (как в приведённом примере) не стартовал, а при второй попытке старта он запустился, скорее всего не настроен DNS - об этом чуть ниже. Если верить информации с многочисленных форумов, то наш сервер уже готов обслуживать до 12 клиентов. Для работы большего числа пользователей, необходимо установить лицензию сервера - либо в виде USB HASP и драйвера, либо в виде электронной лицензии. Про установку аппаратных ключей я уже писал, а установка программных лицензий достаточно проста: запускаем конфигуратор (с клиентской машины; кластер уже должен быть настроен и должна быть информационная база), вызываем "Сервис" - "Получение лицензии", вводим номер комплекта (с коробки или "Регистрационный номер" с карточки из конверта "Пинкоды программной лицензии") и пин-код (с той самой карточки из конверта), ставим галочку "Установка на сервер", вводим имя сервера в соответствующем поле, нажимаем "Далее", говорим, что это - "Первый запуск", заполняем форму "Владелец лицензии" (к стати, я не понял что писать в полях "Фамилия", "Имя", "Отчество" - то ли ответственного за эксплуатацию, то ли генерального директора - оставил поля пустыми, и оно получило лицензию, не ругнувшись), "Далее", "Автоматически" - профит! в /var/1C/licenses на сервере появился файлик XXXXXXXXXXXXXX.lic и серверу "стало хорошо" (если это была многопользовательская лицензия, то клиентам тоже "станет хорошо", т.к. они будут получать лицензии на сервере).
Для работы с графическими объектами и экспорта в xls, могут потребоваться дополнительные пакеты: ImageMagick, freetype (входит в зависимости ImageMagick), libgsf (входит в зависимости ImageMagick), corefonts (отсутствует в репозитариях CentOS - см. раздел 6); для "ТАКСИ" и "Управляемого приложения" они необходимы, для классического толстого клиента вроде бы не особо нужны, но 1С всё равно ругается на их отсутствие, хоть и работает.
По умолчанию сервер 1С слушает порт tcp 1541(1540) и для соединений использует диапазон портов 1560-1691.
5. Настройка экземпляра (кластера) сервера 1С
Информации о наличии оснастки управления сервером 1С для Linux мне не попадалось, так что для управления сервером будем использовать традиционную оснастку mmc для Windows "Администрирование серверов 1С:Предприятия", которую следует поставить из дистрибутива технологической платформы для Windows.
В этом месте на тестовом сервере возникли трудности - кластер по умолчанию отсутствовал, а при попытке создания нового кластера, ragent аварийно завершал работу с сообщением Sep 3 21:29:04 vh-1c83 kernel: ragent[1879]: segfault at 8 ip 00007f56473c9fd4 sp 00007f563b7b14a0 error 4 in rserver.so[7f56472db000+70e000]... странно, но если верить форумам, на CentOS у многих сервер 1С 8.3 ставится некорректно - не создаётся начальная конфигурация, включающая "Кластер по умолчанию". Краткий анализ ситуации выявил, что настройки кластера по умолчанию не были сгенерированы полностью и не попали в /home/usr1cv8/.1cv8/1C/1cv8/.
При попытке подложить файлы с рабочего сервера на неудачный, сервис 1С не запускается абсолютно без каких-либо диагностических сообщений - подобное поведение я видел при проблемах (неверных контекстах) SELinux, но в данном случае никаких отказов в audit.log не обнаружилось.
В результате детального изучения проблемы с применением strace удалось выяснить, что агент сервера при запуске ищет настройки по пути ~/.1cv8/1C/1cv8/ (в домашнем каталоге запустившего пользователя) и если не находит, пытается создать настройки кластера по умолчанию, для чего ему нужно имя хоста (выяснено экспериментально), и если верить "Руководству администратора", нужен корректно работающий DNS; экспериментально же был установлен факт, что сначала ragent читает файл /etc/hosts, затем обращается к DNS-серверу, а затем вызывает uname и снова лезет в hosts и к DNS и если не находит сопоставления, аварийно завершается. Итак, для нормального запуска потребуется полноценная и правильно настроенная сетевая инфраструктура, ну а в отсутствии работающего DNS достаточно дописать строчку в /etc/hosts и привести его примерно к такому виду:
За дальнейшими инструкциями пока отсылаю к своей статье про 8.2 - принципиальных отличий пока нет. Единственное замечание - при создании новой информационной базы, если указывать пользователя подключения к базе данных не с правами суперпользователя (а с набором прав из пункта 3), информационная база не создавалась, а в /var/lib/pgsql/9.2/data/pg_log/postgresql-Xxx.log наблюдались сообщения:
ОШИБКА: нет прав для изменения параметра "lc_messages"
ОПЕРАТОР: SET lc_messages to 'en_US.UTF-8';
ОШИБКА: нет доступа к языку c
ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C
ОШИБКА: нет прав для изменения параметра "lc_messages"
ОПЕРАТОР: SET lc_messages to 'en_US.UTF-8';
ОШИБКА: ошибка синтаксиса (примерное положение: "application") в символе 24
ОПЕРАТОР: lock table pg_class in application share mode
ПРЕДУПРЕЖДЕНИЕ: нет незавершённой транзакции
ОШИБКА: тип "mvarchar" не существует в символе 31
ОПЕРАТОР: create table Config (FileName mvarchar(128) not null, Creation timestamp not null, Modified timestamp not null, Attributes int not null, DataSize int8 not null, BinaryData bytea not null, PartNo int not null, PRIMARY KEY (FileName, PartNo))
ОШИБКА: нет прав для изменения параметра "lc_messages"
ОПЕРАТОР: SET lc_messages to 'en_US.UTF-8';
ОШИБКА: нет доступа к языку c
ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C
После подключения с учётными данными суперпользователя БД, сообщения изменились на англоязычные и проблемы исчезли. Судя по всему, если на сервере установлен язык по умолчанию en_US, данного казуса не случится, но это - не проверенная информация, а лишь предположение, сделанное по прочтении чужой статьи про 8.1 и праздных раздумий =)
Ещё одна странность - если создать пустую SQL базу не из шаблона1 (см. официальную документацию по 1С), и попытаться ей указать на этапе создания ИБ, то всё равно получим сообщение "ОШИБКА: тип "mvarchar" не существует (символ 31)"/"ERROR: type "mvarchar" does not exist at character 31", но мне так и не удалось создать из требуемого шаблона БД - валились разные ошибки, но если пользователя sql, от которого создаётся ИБ временно повысить до суперпользователя с правом создания БД, и указать создание базы данных в случае её отсутствия, то всё получается в лучшем виде, так что на этапе первичной настройки, видимо, придётся повышать пользователя до супер...
Что порадовало - теперь в 1С можно работать непосредственно из Linux, что актуально для компаний, использующих его как основную ОС в корпоративной сети (я сейчас работаю как раз в такой компании); из неожиданностей - что при установке клиента 1С, он заявляет о зависимости от сервера и требует его установки, но потом ставится, прописывает значки запуска в "Офис" - "Финансы" и работает довольно сносно (по ощущениям - чуть менее комфортно, чем 8.2 под Windows, но заметно приятнее, чем тот же 8.2 через WINE от Ethersoft).
6. Установка недостающих зависимостей
При запуске клиента к настроенному по данной инструкции серверу, появится сообщение "На сервере отсутствуют шрифты из состава Microsoft Core Fonts. Внешний вид приложения может отличаться от ожидаемого. Процедура установки описана в справочной системе..." - данное сообщение появляется достаточно редко (периодичность не выявил, но появляется точно не единожды, но и не при каждом запуске), и на работе особо не сказывается, но "для красоты" я решил пройтись по всей цепочке и поставить рекомендуемые пакеты. Всё, кроме "corefonts" поставилось из репозиториев (хотя в той самой "справочной системе" безбожно перепутаны регистры в названиях пакетов, из-за чего их идентификация оказалась весьма развлекательна), ну а шрифты я решил пересобрать (в соответствии с рекомендациями из "справочной системы") и результат прикрепляю к статье - msttcorefonts-2.5-1.noarch.rpm, заодно и сами шрифты (уже переименованные в нижний регистр, как происходит при сборке rpm рекомендованным скриптом) - msttcorefonts.tar.gz - содержимое этого архива рекомендуют распаковать в /home/usr1cv8/.fonts (не забыв сменить владельца как на папку, так и на файлы!), если нет возможности установить предложенный .rpm
Кроме "ImageMagick" и шрифтов, для возможности сохранения в табличные файлы (кроме xls - его я пока не заставил формироваться, хотя xlsx формируется), на клиенте должны быть установлены пакеты "libMagickWand5", "libgomp1", "liblcms2-2" и "libbz2-1" - на ряде машин они отсутствовали. При чём той же разрядности, что и сервер 1С (см. п. 4).
7. Настройка аппаратного hasp для виртуализированного сервера 1С (работающего на виртуальной машине KVM)
Не планировал описывать эту процедуру, но раз уж столкнулся с такой ситуацией, опишу... Итак, на этот раз я использовал драйвер от "Alladin Knowledge Systems USB HASP", предоставляемый компанией Sentinel - мне попались две версии:
2878061 сен 11 2012 aksusbd-2.0-1.i386.rpm - с сайта aladdin-rd.ru
3009880 авг 6 16:35 aksusbd-2.2-1.i386.rpm - с сайта safenet-inc.com
Можно воспользоваться драйвером эзерсофт - окончательный выбор следует делать из опыта практической эксплуатации.
Наиболее правильная (на мой взгляд) последовательность действий:
а) убедиться, что на хост-машине драйвер HASP не установлен;
б) установить выбранный драйвер USB HASP4 на виртуальном сервере;
в) выяснить список подключенных USB-устройств к хост-машине
[root@vh01 files]# ls -R /dev/bus/usb
/dev/bus/usb:
001
002
003
004
/dev/bus/usb/001:
001
002
/dev/bus/usb/002:
001
/dev/bus/usb/003:
001
/dev/bus/usb/004:
001
[root@vh01 files]#
г) подключить USB-HASP к хост-машине и выяснить адрес ключа:
[root@vh01 files]# ls -R /dev/bus/usb
/dev/bus/usb:
001
002
003
004
/dev/bus/usb/001:
001
002
/dev/bus/usb/002:
001
/dev/bus/usb/003:
001
/dev/bus/usb/004:
001
002 <==== это наш ключ - раньше его не было
[root@vh01 files]#
д) используя любой из способов (я использовал Virtual Manager на удалённой машине) добавить "USB Host Device" с найденным адресом (в моём примере - 004:002) к виртуальной машине 1С - может потребоваться выключение и включение машины (я добавлял устройство на выключенную машину).
Собственно, всё - на CentOS 6.4 x64/i686 всё работает (были багрепорты про CentOS 6.0/6.1, но вроде всё починили). Если при запуске виртуалки выдаётся сообщение о занятости устройства, скорее всего подцепился драйвер на хост-машине (так писали на паре форумов, хотя мне эту ситуацию воспроизвести не получилось - даже с установленным драйвером на сервере устройство мапилось корректно). Естественно, если переставить ключ в другой порт USB, придётся перенацеливать и виртуальную машину!
/home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst - файл, в котором хранятся основные свойства сервера - например, учётные данные администратора сервера, зарегистрированые кластеры и т.п.
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst - файл, в котором хранятся свойства кластера по умолчанию
/opt/1C/v8.3/x86_64/ - (вместо "x86_64" может быть "i386" - в зависимости от архитектуры системы) исполняемые файлы и сопутствующие ресурсы сервера (и клиента) 1С
/var/1C/licenses - здесь лежат файлы электронных ключей лицензий
8. Настройка локального репозитория 1С для удобства обновления платформы
В процессе эксплуатации 1С нередко приходится обновлять платформу. Если всё установлено по приведённой выше инструкции, это вызывает определённые неудобства - надо останавливать сервис, удалять старые пакеты, ставить новые... не знаю - мне это ещё в винде надоело смертельно. Linux предлагает очень удобный механизм пакетного обновления из локального репозитория - всё, что нужно - это выбрать место, где будут лежать обновки: для одиночного сервера, к которому все ходят только через web-интерфейс, это может быть /root/repo (всё равно обновление под рутом идёт), ну а в общем случае - хоть /var/www/1c-repo - главное, чтобы все, кому он нужен, его видели. Далее надо установить пакет 'createrepo' (yum install createrepo) - за собой он притащит немало зависимостей, но не смертельно. Теперь командой 'createrepo /root/repo' (где "/root/repo" - выбранный путь хранения репозитория) создаём его "описание" и можно пользоваться.
Затем создаём файл описания нашего репозитория и помещаем его в каталог описаний репозиториев (для CentOS это /etc/yum.repos.d). Пример конфига локального файлового репозитария:
[root@1c yum.repos.d]# cat local-1c.repo
[local-1c]
name=1C Enterprise
#baseurl=http://inhost.firm.lan/repo
baseurl=file:///root/repo
gpgcheck=0
enabled=1
По-моему, разъяснять что за что отвечает, особого смысла нет. Единственное, что важно - сразу yum его может не увидеть - в этой ситуации поможет очистка его кэшей (yum clean all).
Всё. Теперь если надо обновиться, то помещаем новые файлы дистрибутива 1С рядом со старыми, повторяем 'createrepo /root/repo' вызываем 'yum update' - и всё - платформа пошла обновляться! Естественно, за сохранностью и защищённостью своего репозитория надо следить, так как GPG у нас выключен, и это всё же дыра в безопасности, хоть и не особо толстая...
Как в 1С производится запуск фоновых заданий, каким образом можно получить список заданий при помощи метода "ПолучитьФоновыеЗадания()?
В одном проекте понадобилось запускать выполнение выгрузки на сайт с сервера.
Пользователь на своем клиенте открывает обработку, устанавливает параметры и нажимает выгрузить.
Выгрузка идет не с компьютера клиента, а создается фоновое задание на сервере!
На клиенте в модуле Кнопки Выгрузить:
ПараметрыФоновогоЗадания - это переменные функции, они задаются по порядку как определены в вызываемой функции.
На сервере в общем модуле МодульРегламентныхЗаданий:
Как Получить фоновые задания?
Напишем в процедуре обработки нажания следующий код:
Текст процедуры на сервере:
В окно сообщений выведутся наименования выполняющихся и выполненных в 1С фоновых заданий с наименованием "Тестовое задание", так как мы сделали отбор именно по этому наименованию.
Думаю, уже многие слышали что KLADR заменен на ФИАС (Федеральная информационная адресная система)
Единой информацией из ФИАС будут обязаны пользоваться все ведомства – ГИБДД, Росреестр, ЗАГС, ФМС России и др, в частности Почта России – которая использует свой, отличный от КЛАДРа справочник адресов, что приводило к постоянным проблемам с доставкой писем, высылаемые ФНС налогоплательщикам. Налоговая служба разработала порядок ведения ФИАС, согласно которому данные об улице, доме, квартире и т. д. должны будут в течение нескольких дней с момента появления попадать в новую информационную систему.
Пользователи последних версий 1С при попытке обновить адресный классификатор, наверняка уже видели ошибку вида:
Для региона "78 Санкт-Петербург г" не найден файл данных "78.ZIP"
Для региона "77 Москва г" не найден файл данных "77.ZIP"
Теперь для обновления адресного классификатора нужно использовать ФИАС
Что же делать и как это победить, и так по порядку:
Клиенты очень медленно работают с серверной версией 1С
Кроме медленной работы 1С, так же наблюдается медленная работа с сетевыми файлами. Проблема встречается при обычной работе и при RDP
для решения этого, после каждой установки Семерки или 2008-го сервера всегда запускаю
netsh int tcp set global autotuning=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled chimney=disabled
и сеть работает без проблем
иногда оптимальным является:
netsh interface tcp set global autotuning= HighlyRestricted
вот как выглядит установка
Далее посмотрите настройки брандмауэра Windows
Настроить брандмауэр Антивируса или Windows
Как настроить брандмауэр Антивируса или Windows для работы сервера 1С (связка из Сервера 1С: Предприятие и MS SQL 2008, например).
Добавьте правила:
Если сервер SQL принимает подключения на стандартный порт TCP 1433, то разрешаем его.
Если порт SQL динамический, то необходимо разрешить подключения к приложению %ProgramFiles%\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\sqlservr.exe.
Сервер 1С работает на портах 1541, кластер 1540 и диапазоне 1560-1591. По совершенно мистическим причинам иногда такой список открытых портов все равно не позволяет выполнять подключения к серверу. Чтобы заработало наверняка, разрешите диапазон 1540-1591.
Настройка производительности Сервера / Компьютера
Для того чтобы компьютер работал с максимальной производительностью - нужно настроить его на это:
1. Настройки BIOS
В BIOS сервера отключаем все настройки по экономии электропитания процессора.
Если есть «C1E» & обязательно ОТКЛЮЧАЕМ!!
Для некоторых не очень параллельных задач также рекомендуется выключить гипертрейдинг в биосе
В некоторых случаях (особенно для HP!) надо зайти в BIOS сервера, и ВЫКЛЮЧИТЬ там пункты, в названии которых есть EIST, Intel SpeedStep и C1E.
Взамен надо там же найти пункты, связанные с процессором, в названии которых есть Turbo Boost, и ВКЛЮЧИТЬ их.
Если в биосе есть общее указание режима энергосбережения & включить его в режим максимальной производительности (он ещё может называться «агрессивный»)
2. Настройки схемы в операционной системе - Высокая производительность
Скачайте утилиту PowerSchemeEd.7z , распакуйте с помощь 7zip и запустите PowerSchemeEd.exe
Выберите раздел Управление питанием процессора и выставите параметры 01. Порог при питании от сети 30% и отключите 27. Переопределение ядра... как на картинке.
3. На серверах 1С и MS SQL Server использование антивирусов (даже сам факт инсталяции без включения) будет приводить к снижению производительности в виде периодических массовых замедлений и подвисаний интерфейса.
4. Совмещение ролей сервера 1С и сервера MS SQL Server дает большую производительность, особенно если использовать протокол обмена данных напрямую через память «Shared Memory».
Очень многие не недооценивают важность настройки сервера, когда роли сервера 1С и сервера СУБД совмещены на одном физическом компьютере.
Убедиться, что к примеру используется протокол Shared Memory можно следующим образом:
Обратите внимание, что в версиях платформы некоторые релизы «переключались» на протокол «именнованых каналов».
Для работы 1С Предприятие в режиме Shared Memory с SQL Server 2012 должен быть установлен NativeClient от SQL Server 2008 (backward compatibility connectivity components из дистрибутива SQL Server 2012 или отдельный пакет)
5. Отключение ненужных служб Виндовс
Одним из самых действенных способов ускорения компьютера является отключение неиспользуемых (ненужных) служб операционной системы. У ОС Windows по умолчанию включено огромное количество служб, на работу которых требуется большое количество ресурсов системы. Многие из них можно отключить без потери функциональности и снижения безопасности системы.
Какие службы можно отключить для оптимизации Windows:
Авто настройка WWAN – в том случае, если у Вас нет CDMA или GSM модулей, эту службу можно безболезненно отключить
Адаптивная регулировка яркости – эта служба регулирует яркость экрана при наличии датчика освещенности, если такой датчик отсутствует – отключаем.
Брандмауэр Windows – предназначен для защиты компьютера. Рекомендуется пользоваться сторонними приложениями для этих целей (например, Comodo, KIS, DrWEB и т.п.).
Защитник Windows – отключаем, совершенно ненужная служба!
Служба помощника по совместимости программ (Program Compatibility Assistant) – эту службу можно отключить, только в случае несовместимости программ нужно будет вручную устанавливать параметры, что бывает не так уж часто.
Служба автоматического обнаружения веб-прокси WinHTTP – можно отключать.
Служба политики диагностики (Diagnostic Policy Service) – практически не нужна.
Смарт-карта – если Вы не пользуетесь такими картами, то отключаем.
Удаленный реестр (Remote Registry) – обязательно отключаем в целях безопасности.
Центр обеспечения безопасности (Security Center) – напоминает о различных событиях вроде отсутствия антивируса, устаревших обновлениях и т.п. – отключаем, если не хотите их видеть.
Список, конечно, получился не особо емким, на самом деле служб, которые можно отключить, намного больше. Кроме того, среди стандартных служб появятся дополнительные службы сторонних программ, которые установлены на Вашем ПК, их также можно отключить.
Кэширование записей на дисках в Windows
Кэшированием записей на устройстве хранения называется использование высокоскоростной энергозависимой памяти для накопления команд записи, отправляемых на устройства хранения данных, и их кэширования до тех пор, пока их не обработает более медленный носитель (либо физические диски, либо недорогая флэш-память). Для большинства устройств, использующих кэширование записей, требуется непрерывная подача электропитания.
Для управления кэшированием записей на диске откройте Панель управления - Диспетчер устройств.
В разделе Дисковые устройства дважды щелкните нужный диск.
Добавляем на форму рамку группы и на нее размещаем переключатели через пункт меню:
Форма -> Вставить элемент управления… и в открывшемся окне выбираем переключатели:
В правой части окна добавляем значение переключателя столько, сколько нам необходимо, ставим галочку на «Акции – первый в группе», для того чтоб данный переключатель выбирался автоматически.
После того как добавим переключатели выберем тип данных для первого значения «Акции», в нашем случае присваиваем значение «ТипЦБ»:
А само значение переключателя вводится в Данные -> Выбираемое значение. Для Акции это 0, Облигации – 1, Векселя - 2 и Паи – 3. Но до введения этих данных необходимо проверить порядок.
Если переключатели идут не по порядку, то не будет осуществлено переключение, то есть не сможем выбрать значение облигации. Для того чтобы включить эту возможность, необходимо выбрать меню Форма -> Настройка порядка обхода и все переключатели разместить по порядку.
Проверьте значение выбираемого значения переключателей после исправления порядка.
Остается только в событии переключателя «акции» «При изменении» написать код программы:
Теперь при выборе переключателя «Облигации» дается возможность редактировать значение колонки НКД:
В интернете полно вопросам по созданию новой последовательности документов и регистрации в ней документов, и так по порядку:
1. Создали новую последовательность
2. На закладке Использование указали регистрируемые документы и регистры движений:
3. Для автоматического регистрирования документов - в свойствах документа должно быть в разделе Данные, поле Заполнение последовательности - автоматически
4. Если указано: Не заполнять автоматически
Документы в последовательности не регистрируются сами, для этого в обработку проведения надо добавить код:
Если у последовательности есть Измерение, например Организация, то код:
В этой статье я постараюсь описать процесс парсинга сайтов средствами 1С с примером.
Это статья не является инструкцией к применению, а лишь демонстрирует возможности 1С.
Что мы имеем? 1. Сайт в интернете, на котором располагается список товаров. В моем случае – это интернет магазин салона «Связной»
2. Понимание основ сайтостроения… хотя бы знание HTML тегов
3. Умение кодить в 1С 8
Для начала парсинга стоит определиться с тем что мы хотим спарсить и какая у нас будет иерархия. В моем случае это категория сотовых телефонов. Верхний уровень иерархии будет производители. Почему именно так? Потомы что я так захотел. Вы же вправе использовать любую иерархию.
Далее нам будут интересны такие поля как: Наименование, Цена, Картинка и Описание... ну и пожалую захватим операционную систему, чтобы пример получился более наглядным.
1. Создаем внешнюю обработку. Те, кто не знают как это сделать - дальше могут не читать
2. Создаем форму обработки с командной панелью снизу и сверху (они могут быть полезными)
3. Размещаем на ней Панель и обзываем первую страницу "СамСайт"
4. Кладем на страницу "СамСайт" ПолеHTMLДокумента и обзываем его к примеру "Сайт"
5. Переименовываем кнопку "Выполнить", которая находится на нижней панели в "Загрузить сайт"
6. Описываем процедуру нажатия на эту кнопку так:
7. Проверяем работу нашей обработки. У меня появился сайт связного. А у Вас?
Дальше сложнее. Все еще хочешь парсить сайты? Тогда читай:
Сам парсинг сайта заключается в обходе всех элементов загруженной страницы, выдергивания необходимой информации и запихивания их в табличную часть. Для этого:
1. Создадим табличную часть "Производители" с реквизитами "Отметка" (Булево), "Наименование" (Строка 100) и "Ссылка" (Строка 300).
2. Добавляем еще одну страницу на панели и обзываем ее "Производители"
3. Размещаем на этой странице одноименную табличную часть
4. Добавляем на нижней панели кнопку "Заполнить производителей" с кодом:
Здесь напрашиваются небольшие пояснения:
tagName - имя HTML тега в HTML документе
nextSubling - следующий элемент HTML документа от текущего
children - список дочерних элементов
firstChild - первый дочерний элемент от текущего
5. Проверям. При проверке важно, находиться на странице "СамСайт", чтобы заполнять производителей
Производители заполнены. Теперь к самим телефонам
1. Создаем табличную часть "Товары" с реквизитами "Производитель" (Строка 100), "Наименование" (Строка 100), "Цена" (Число 10,2), "Картинка" (Строка 300), "Описание" (Строка Неограниченная), "ОС" (строка 100), "Ссылка" (Строка,300)
2. Добавляем еще одну страницу на панели и обзываем ее "Товары"
3. Размещаем на этой странице одноименную табличную часть
4. Добавляем на нижней панели кнопку "Заполнить товары" с кодом:
5. Создаем форму обработки "ФормаТоваров"
6. Кладем на "ФормаТоваров" ПолеHTMLДокумента и называем его "Сайт"
7. На событие ДкументСформирован у ПоляHTMLДокумента пишем код:
8. Создаем переменную в модуле формы
перем ТекущийПроизводитель Экспорт;
9. Создаем процедуру ГрузимТовары():
10. Проверям. Все работает.
Дело осталось за "операционной системой" и еще надо загрузить картинки. Давайте по порядку. Чтобы получить "ОС" нам надо открыть этот товар и считать "ОС" оттуда. Для этого делаем следующее:
1. Добавляем на нижней панели кнопку "Доп Инфо" с кодом:
2. Создаем форму обработки "ФормаДопИнфо"
3. Кладем на "ФормаДопИнфо" ПолеHTMLДокумента и называем его "Сайт"
4. На событие ДкументСформирован у ПоляHTMLДокумента пишем код:
5. Создаем переменную в модуле формы
перем ТекущийТовар Экспорт;
6. Создаем процедуру ГрузимДопИнфо():
7. Проверяем и переходим к последнему пункту
Заметили как похожи две последние инструкции? То-то же. Стремился к универсальности. Ну и наконец последний этап - Сохраним все изображения к примеру на диск "С" в папку "связной". Поехали
1. Добавляем на нижней панели кнопку "Сохранить Картинки" с кодом:
2. Добавляем функцию СохранитьКартинкуСайта:
На этом наша эпопея с парсингом закончена. Это всего лишь пример того, как это можно сделать. Приложив сюда немного своего кода - можно сделать парсер для любого сайта. Скачивать файлы может только зарегистрированный пользователь! Имея парсер 1С - я могу спарсить все, кроме этого парсера. Имя два парсера 1С - я могу спарсить все
Автор: opx
Кодирование: Ctrl+Пробел - вызов подсказки Ctrl+Q - вызов шаблона Ctrl+F1 - поиск в синтакс-помощнике Ctrl + L - удалить текущую строку Alt+Shift+F - отформатировать код Исследование: F12 - ставим курсор на процедуре или функции и переходим к определению процедуры или функций. Ctrl+(минус) - перемещает назад в модуль, из которого ушли через F12 Ctrl+T - найти в дереве конфигурации Ctrl+F - найти объект метаданных или его реквизит в дереве метаданных. Отладка: F5 - начать/продолжить отладку F9 - установить/снять точку останова F10 - шагнуть через процедуру или функцию, на следующую строку кода F11 - идти по порядку с заходом во все процедуры и функции. Alt+F9 - список точек останова Shift+F9 - вычислить выражение Ctrl+Shift+F9 - отк./вкл. точку остан. Ctrl+Alt+W - открыть табло Ctrl+Alt+C - открыть стек вызовов Закладки: Alt+F2 - установить/снять закладку F2 - к следующей закладке Shift+F2 - к предыдущей закладке Быстрый переход по Процедурам, Функциям, Условиям, Циклам: Ctrl+[ - перейти назад Ctrl+] - перейти вперед Ctlr+G - перемещения к строке кода Окно сообщений: Ctrl+Alt+Z - очистить. Ctrl+Shift+Z - очистить и закрыть
Рассмотрим более подробно:
Глобальные действия
Создать новый документ - Ctrl + N
Открыть существующий документ - Ctrl + O
Активизировать поле поиска в командной панели - Ctrl + D
Открыть "Глобальный поиск по текстам" - Ctrl + Shift + F
Открыть "Результаты глобального поиска по текстам" - Ctrl + Shift + H
Запустить 1С:Предприятие без отладки - Ctrl + F5
Открыть окно "Конфигурация" - Ctrl + Shift + С
Обновить конфигурацию БД - F7
Открыть "Шаблоны текста" - Ctrl + Shift + T
Открыть встроенный "Калькулятор" системы 1С:Предприятие - Ctrl + F2
Открыть "Свойства" - Alt + Enter
Открыть "Дополнительно" - Shift + Alt + Enter
Открыть "Служебные сообщения" - Ctrl + Alt + O
Закрыть "Служебные сообщения" - Ctrl + Shift + Z
Очистить служебные сообщения - Ctrl + Alt + Z
Открыть "Справку" - F1
Открыть "Содержание справки" - Shift + F1
Открыть "Индекс справки" - Shift + Alt + F1
Открыть "Поиск по справке" - Ctrl + Alt + F1
Открыть "Синтакс-Помощник - Ctrl + Shift + F1
Поиск по индексу в "Синтакс-Помощнике" - Ctrl + F1
Общие действия
Удалить - Del
Добавить - Ins
Сохранить активный документ - Ctrl + S
Печать активного документа - Ctrl + P
Печать на текущий принтер - Ctrl + Shift + P
Копировать в буфер обмена - Ctrl + C - Ctrl + Ins
Вырезать в буфер обмена - Ctrl + X - Shift + Del
Вставить из буфера обмена - Ctrl + V - Shift + Ins
Добавить к буферу обмена - Shift + Num+
Вычесть из буфера обмена - Shift + Num-
Выделить все - Ctrl + A
Отменить последнее действие - Ctrl + Z - Alt + BackSpace
Вернуть отмененное действие - Ctrl + Y - Shift + Alt + BackSpace
Найти - Ctrl + F
Найти следующий - F3
Найти следующий выделенный - Ctrl + F3
Найти предыдущий - Shift + F3
Найти предыдущий выделенный - Ctrl + Shift + F3
Заменить - Ctrl + H
Найти в дереве - Ctrl + T
Следующий элемент в результатах поиска и окне сообщений - F8
Предыдущий элемент в результатах поиска и окне сообщений - Shift + F8
Развернуть (узел дерева, группу табличного документа, группировку модуля) - Ctrl + Num+
Свернуть (узел дерева, группу табличного документа, группировку модуля) - Ctrl + Num-
Развернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные - Ctrl + Alt + Num+
Свернуть (узел дерева, группу табличного документа, группировку модуля) и все подчиненные - Ctrl + Alt + Num-
Развернуть (все узлы дерева, группы табличного документа, группировки модуля) - Ctrl + Shift + Num+
Свернуть (все узлы дерева, группы табличного документа, группировки модуля) - Ctrl + Shift + Num-
Следующая страница - Ctrl + PgDn - Ctrl + Alt + F
Предыдущая страница - Ctrl + PgUp - Ctrl + Alt + B
Включить/выключить жирность - Ctrl + B
Включить/выключить курсив - Ctrl + I
Включить/выключить подчеркивание - Ctrl + U
Переход к предыдущей главе справки - Alt + Left
Переход к следующей главе справки - Alt + Right
Управление окнами
Закрыть активное окно, модальный диалог или приложение - Alt + F4
Закрыть активное обычное окно - Ctrl + F4
Закрыть активное окно (кроме обычных) - Shift + Esc
Активизировать следующее обычное окно - Ctrl + Tab - Ctrl + F6
Активизировать предыдущее обычное окно - Ctrl + Shift + Tab - Ctrl + Shift + F6
Активизировать следующую секцию окна - F6
Активизировать предыдущую секцию окна - Shift + F6
Вызвать системное меню приложения или модального диалога - Alt + Space
Вызвать системное меню окна (кроме модальных диалогов) - Alt + Hyphen(-) - Alt + Num-
Вызвать главное меню - Alt - F10
Вызвать контекстное меню - Shift + F10
Переход по истории активности окон
Переместиться назад - Ctrl + "-"
Переместиться вперед - Ctrl + Shift + "-"
Вернуть активность обычному окну - Esc
Форма
Перейти к следующему элементу формы/выполнить действие кнопки по умолчанию - Enter
Выполнить действие кнопки по умолчанию - Ctrl + Enter
Перейти к следующему элементу формы - Tab
Вернуться к предыдущему элементу формы - Shift + Tab
Активизировать командную панель, связанную с активным элементом управления/формой - Alt + F10
Открыть "Список элементов управления формы" - Ctrl + Shift + L
Перемещение по элементам управления, объединенным в одну группу - Up, Down, Left, Right
Работа со списком и деревом
Открыть - F2
Обновить - Ctrl + Shift + R
Скопировать - F9
Новая группа - Ctrl + F9
Удалить строку - Shift + Del
Перемещение строки вверх - Ctrl + Shift + Up
Перемещение строки вниз - Ctrl + Shift + Down
Перенести элемент в другую группу - Ctrl + Shift + M
Перейти на уровень вниз с одновременным раскрытием группы - Ctrl + Down
Перейти на уровень вверх (к "родителю") - Ctrl + Up
Закончить редактирование - Shift + F2
Развернуть узел дерева - Num+ - Ctrl + Num+
Свернуть узел дерева - Num- - Ctrl + Num-
Развернуть узел дерева и все подчиненные - Num* - Ctrl + Alt + Num+
Свернуть узел дерева и все подчиненные - Ctrl + Alt + Num-
Развернуть все узлы дерева (выполняется в любом месте дерева) - Ctrl + Shift + Num+
Свернуть все узлы дерева (выполняется в любом месте дерева) - Ctrl + Shift + Num-
Изменение флажка - Пробел
Поле ввода
Переключить режим вставки/замены - Ins
Кнопка выбора - F4
Кнопка открытия - Ctrl + Shift + F4
Очистить поле - Shift + F4
Удалить символ слева от курсора - BackSpace
Удалить символ справа от курсора - Del
Удалить слово слева от курсора - Ctrl + BackSpace
Удалить слово справа от курсора - Ctrl + Del
Перейти в начало строки - Home
Перейти в конец строки - End
Поле картинки
Увеличить масштаб - Num+
Уменьшить масштаб - Num-
Прокрутить - Up, Down, Left, Right
Прокрутить на размер окна вверх - Page Up
Прокрутить на размер окна вниз - Page Down
Прокрутить на размер окна влево - Alt + PgUp
Прокрутить на размер окна вправо - Alt + PgDn
Редактор управляемых форм
Переключиться на закладку "Форма" - Alt + 1
Переключиться на закладку "Модуль" - Alt + 2
Переключиться на закладку "Форма" и активизировать закладку "Элементы" - Alt + 3
Переключиться на закладку "Форма" и активизировать закладку "Реквизиты" - Alt + 4
Переключиться на закладку "Форма" и активизировать закладку "Команды" - Alt + 5
Переключиться на закладку "Форма" и активизировать закладку "Командный интерфейс" - Alt + 6
Переключиться на закладку "Форма" и активизировать закладку "Параметры" - Alt + 7
Переключиться на закладку "Форма" и активизировать окно предварительного просмотра формы - Alt + 8
Редактор форм
Протестировать форму - Ctrl + R
Переместить элемент управления - Up, Down, Left, Right
Копировать элемент управления - Ctrl + (Up, Down, Left, Right)
Копировать элемент управления с инверсией выравнивания по сетке - Ctrl + Alt + (Up, Down, Left, Right)
Изменить размер элемента управления - Shift + (Up, Down, Left, Right)
Изменить размер элемента управления с инверсией выравнивания по сетке - Shift + Alt + (Up, Down, Left, Right)
Инверсия использования сетки - Alt + (Up, Down, Left, Right)
Открыть окно "Привязка границ для элемента…" - Ctrl + Shift + S
Начало редактирования - F2
Редактор табличных документов
Перейти к ячейке - Ctrl + G
Перемещение по ячейкам - Up, Down, Left, Right
Перемещение по ячейкам к следующей заполненной или пустой - Ctrl + (Up, Down, Left, Right)
Перемещение по ячейкам к следующей заполненной или пустой с выделением ячеек - Ctrl + Shift + (Up, Down, Left, Right)
Выделение ячеек - Shift + (Up, Down, Left, Right)
Выделение ячеек от текущей до начала строки - Shift + Home
Выделение ячеек от текущей до конца строки - Shift + End
Выделение строк - Alt + Shift + (Up, Down)
Выделение строк до следующей заполненной или пустой ячейки - Ctrl + Alt + Shift + (Up, Down)
Выделение колонок - Alt + Shift + (Left, Right)
Выделение колонок до следующей заполненной или пустой ячейки - Ctrl + Alt + Shift + (Left, Right)
Выделение ячеек от текущей до начала документа - Ctrl + Shift + Home
Выделение ячеек от текущей до конца документа - Ctrl + Shift + End
Прокрутить на страницу вверх - PgUp
Прокрутить на страницу вниз - PgDn
Прокрутить на страницу влево - Alt + PgUp
Прокрутить на страницу вправо - Alt + PgDn
Перейти к редактированию содержимого ячейки - Enter
Переключение режима редактирования/ввода в ячейке - F2
Перейти в начало строки - Home
Перейти в конец строки - End
Перейти в начало текста - Ctrl + Home
Перейти в конец текста - Ctrl + End
Установка имени текущей области - Ctrl + Shift + N
Редактор текстовых документов и модулей
Переключить режим вставки/замены - Ins
Перейти в начало строки - Home
Перейти в конец строки - End
Выделить до начала строки - Shift + Home
Выделить до конца строки - Shift + End
Перейти в начало текста - Ctrl + Home
Перейти в конец текста - Ctrl + End
Выделить до начала текста - Ctrl + Shift + Home
Выделить до конца текста - Ctrl + Shift + End
Прокрутить на одну строку вверх - Ctrl + Up
Прокрутить на одну строку вниз - Ctrl + Down
Перейти к началу предшествующего слова - Ctrl + Left
Перейти к началу следующего слова - Ctrl + Right
Выделить слово - Ctrl + W
Выделить предшествующее слово - Ctrl + Shift + Left
Выделить следующее слово - Ctrl + Shift + Right
Прокрутить на страницу вверх - PgUp
Прокрутить на страницу вниз - PgDn
Выделить предыдущую страницу текста - Shift + PgUp
Выделить следующую страницу текста - Shift + PgDn
Снять выделение - Esc
Перейти к строке - Ctrl + G
Удалить символ слева от курсора - BackSpace
Удалить символ справа от курсора - Del
Удалить слово слева от курсора - Ctrl + BackSpace
Удалить слово справа от курсора - Ctrl + Del
Установить/снять закладку - Alt + F2
Следующая закладка - F2
Предыдущая закладка - Shift + F2
Удалить текущую строку - Ctrl + L
Форматировать блок - Shift + Alt + F
Добавить комментарий - Ctrl + Num/
Удалить комментарий - Ctrl + Shift + Num/
Cдвинуть блок вправо - Tab
Сдвинуть блок влево - Shift + Tab
Синтаксический контроль - Ctrl + F7
Процедуры и функции модуля - Ctrl + Alt + P
Перейти к объявлению процедуры или переменной - F12
Контекстная подсказка - Ctrl + Пробел
Свернуть группу (курсор может быть в любом месте группы) - Ctrl + Num -
Развернуть группу (курсор может быть в любом месте группы) - Ctrl + Num +
Cвернуть все группы - Ctrl + Shift + Num -
Развернуть все группы - Ctrl + Shift + Num +
Обновить группировки - Ctrl+ Shift + R
Активизация шаблона - Ctrl + Q
Перейти по операторным скобкам назад - Ctrl + [
Перейти по операторным скобкам вперед - Ctrl + ]
Перейти по операторным скобкам назад с выделением текста - Ctrl + Shift + [
Перейти по операторным скобкам вперед с выделением текста - Ctrl + Shift + ]
Отладчик
Начать/продолжить отладку - F5
Перезапуск приложения для отладки - Ctrl + Shift + F5
Прекратить отладку - Shift + F5
Шагнуть в - F11
Шагнуть через - F10
Шагнуть из - Shift + F11
Идти до курсора - Shift + F10
Установить/снять точку останова - F9
Отключить/включить точку останова - Ctrl + Shift + F9
Список точек останова - Alt + F9
Вычислить выражение - Shift + F9
Открыть табло - Ctrl + Alt + W
Открыть стек вызовов - Ctrl + Alt + C
Редактор картинок
Переключение картинка/коллекция - Ctrl + K
Параметры картинки/коллекции - Shift + Alt + P
Отразить слева направо - Ctrl + H
Отразить сверху вниз - Ctrl + Shift + H
Выделение прямоугольником - Shift + Alt + S
Масштаб - Ctrl + M
Ластик - Ctrl + Shift + E
Заливка - Ctrl + Shift + F
Карандаш - Ctrl + Shift + I
Кисть - Ctrl + Shift + B
Линия - Ctrl + Shift + L
Кривая - Shift + Alt + С
Аэрограф - Ctrl + Shift + A
Текст - Shift + Alt + T
Увеличение масштаба - Ctrl + Num+
Уменьшение масштаба - Ctrl + Num-
Палитра свойств
Сохранить свойства - Enter
Восстановить значения свойства - Esc
Раскрыть категорию свойств - Num+
Закрыть категорию свойств - Num-
Перейти в начало палитры - Home
Перейти в конец палитры - End
Перейти к предыдущему свойству - Up
Перейти к следующему свойству - Down
Прокрутить на страницу вверх - PgUp
Прокрутить на страницу вниз - PgDn
Перейти к предыдущей категории - Ctrl + PgUp
Перейти к следующей категории - Ctrl + PgDn
Редактор карты маршрута
Перейти на следующий элемент карты - Tab
Перейти на предыдущий элемент карты - Shift + Tab
Уменьшить ширину элемента карты - Shift + (Left)
Увеличить ширину элемента карты - Shift + (Right)
Уменьшить высоту элемента карты - Shift + (Up)
Увеличить высоту элемента карты - Shift + (Down)
Перемещение выделенного варианта вверх (только при выделенном варианте в - Ctrl + (Up)
элементе "Выбор варианта")
Перемещение выделенного варианта вниз (только при выделенном варианте в - Ctrl + (Down)
элементе "Выбор варианта")
Поиск - Ctrl + F
Найти следующий - F3
Найти предыдущий - Shift + F3
Замена - Ctrl + H
Конфигурация
Открыть конфигурацию - Alt + К + Enter
Поиск во всех текстах - Alt + К + Т
Объединение конфигураций - Alt + К + О
Загрузить измененную конфигурацию - Alt + K + З
Конвертирование данных - Alt + К + Е
Администрирование
Пользователи - Alt + А + П
Сохранить данные - Alt + А + Х
Восстановить данные - Alt + А + В
Выгрузить данные - Alt + А + Ы
Загрузить данные - Alt + А + Г
Настройка журнала регистрации - Alt + А + Н
Распределенная ИБ - Alt + А + Р
Управление - Alt + А + Р + У
Автообмен - Alt + А + Р + А
Действия
Открыть в отладчике - Alt + Д + Т
Синтаксический контроль запросов - Alt + Д + К
Синтаксический контроль - Alt + Д + И
Процедуры и функции модуля - Alt + Д + Р
Файл
Новый - Ctrl + N
Открыть - Ctrl + O
Сохранить - Ctrl + S
Печать - Ctrl + P
Сравнить файлы - Alt + Ф + Р
Закрыть - Alt + Ф + З
Просмотр - Alt + Ф + Р + Р + Enter
Параметры страницы - Alt + Ф + М
Работа с закладками
Предыдущая закладка - Shift + F2
Закладка - Alt + F2
Следующая закладка - F2
Работа с блоком
Форматировать - Ctrl + Shift +F
Сдвинуть вправо - Tab
Сдвинуть влево - Shift + Tab
Добавить комментарий - Ctrl + Num /
Удалить комментарий - Ctrl + Shift + Num /
Окна
Закрыть окно - Ctrl + F4
Следующее окно - Ctrl + Shift + F6
Предыдущее окно - Ctrl + F6
Каскадом - Alt + О + К
Закрыть окно сообщений - Ctrl + Shift + z
Следующая страница - Ctrl + Alt + F
Предыдущая страница - Ctrl + Alt + B
Разделить окно - Alt + О + Р
Поиск и замена
Заменить - Ctrl + Shift + F3
Искать - Ctrl + F3
Повторить поиск - F3
Искать назад - Alt + F3
Искать вперед - Shift + F3
Переход к строке - Ctrl + Shift + L
Сервис
Калькулятор - Ctrl + F2
Синтаксис помощник - Alt + С + С
Настройка шаблонов - Alt + С + Н
Временная блокировка - Alt + С + В
Запуск предприятия - F11
Запуск отладчика - F12
Помощь
Помощь - F1
Содержание - Shift + F1
Поиск в Синтакс-Помощнике - Ctrl + F1
О программе - Alt + П + О
Программируя под 8.2, работающем в режиме управляемого приложения, я столкнулся с проблемой печати штрихкода. Для платформы 8.1 и платформы 8.2 в режиме обычного приложения такой проблемы не было: устанавливаем элемент «1С:Печать штрихкодов» в макет и наслаждаемся вертикальными черточками. В режиме управляемого приложения вываливается ошибка:
Что же случилось?
Дело в том, что для управляемого приложения внешние компоненты разрабатываются по другой технологии. Пример внешней компоненты для печати штрих-кода в 8.2 есть в демонстрационной конфигурации "Управляемое приложение" в макетах справочника Товары либо в конфигурации «1С:Управление торговлей» версии 11, макеты обработки «Печать этикеток и ценников».
Данная компонента, получив в качестве параметра строку штрихкода, возвращает картинку – штрихкод, которую программисту предлагается поместить в любое удобное место печатной формы.
Теперь как это сделать.
Всего обработок аж четыре штуки: КомпонентаПечатиШтрихкодовWindows32
КомпонентаПечатиШтрихкодовWindows64
КомпонентаПечатиШтрихкодовLinux32
КомпонентаПечатиШтрихкодовLinux64
Все они загружены в одноименные макеты. Функция, подключающая внешнюю компоненту в зависимости от платформы может выглядеть так:
В коде выше все компоненты загружены в макеты обработки «ПечатьЭтикетокИЦенников». В принципе ничто не мешает поместить их в любое иное место. Вызов функции осуществляется командой:
Если что-то не получилось – возвращает НЕОПРЕДЕЛЕНО.
Далее опишем функцию, которая, получив данные, сформирует нужную нам картинку с штрихкодом:
В данной функции используется автоопределение типа штрихкода командой
Можно тип штрихкода указать вручную:
ТипКода - число от 0 до 15: 0 - EAN8, 1 - EAN13, 2 - EAN128. Вот полный список типов по порядку: EAN8, EAN13, EAN128, Code39, Code128, Code16k, PDF417, Standart (Industrial) 2 of 5, Interleaved 2 of 5, Расширение Code39, Code93, ITF14, RSS14, CodaBar, EAN13 AddOn 2, EAN13 AddOn 5.
Кроме типа штрихкода, компонента имеет ряд других свойств, например ВнешняяКомпонента.ОтображатьТекст, ВнешняяКомпонента.РазмерШрифта и прочие, можно посмотреть в свойствах.
Наконец последнее - вывод штрихкода. Для этого в макет поместим картинку с именем «Штрихкод». Получаем и выводим штрихкод в область командой:
Где Штрихкод – переменная, содержащая строку штрихкода номенклатуры, 50 – требуемая ширина, 30 – высота картинки. В макете размер картинки лучше всего поставить «Реальный размер».
Замечание. Сразу бросается в глаза то, что я вручную указываю размер требуемой картинки – 50 на 30. Возникает вопрос, а нельзя ли размеры требуемой картинки получить из картинки на макете? Конечно можно:
К сожалению, цифры получаемые этими командами почему-то слишком малы. Как получить реальный видимый размер картинки я пока не знаю, может кто подскажет? Источник
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес приложений с твердой уверенностью скажет вам - что ему нравится больше всего в 1С. Конечно конструктор запросов - самый удобный и продуманный механизм написания запросов для получения данных из реляционных структур, который я лично когда-либо встречал. А теперь 1С нам предоставили такую замечательную возможность использовать его не только с 1С, но и с любыми другими таблицами. Вот только в эту "бочку мёда" насыпана куча "ложек дёгтя". Обо всём по порядку:
1) Настройка и использование - без "танцев с бубном" не получится
a) Добавляете внешний источник данных - вроде ничего сложного
б) ставите галочку "Выбрать из списка" - обязательно - это нужно чтобы проверить работоспособность уже в начале и избавит от лишних заморочек
в) - обязательно нажимаем "..." - подключение именно ODBC. Не OLEDB как мы все привыкли, а на уровень ниже
г) А вот здесь будьте ОЧЕНЬ ВНИМАТЕЛЬНЫ.
Это драйвер ODBC - в случае использования клиент-серверной версии он должен обязательно быть на сервере. Если вы ведёте разработку на одной системе, а рабочая версия на другой (как это обычно бывает) убедитесь что вас не ждут сюрпризы. Странная рекоммендация, но выбирайте самый древний или самый общий драйвер в случае если вас не особо заботит скорость и за пределы возможностей стандарта SQL92 вы выходить не намерены. Это обеспечит вам лучшую совместимость. Например для SQL Server 2008 лучшим драйвером будет SQL Server Native Client 11, но рекоммендую выбирать просто SQL Server, иначе этот самый native client придётся устанавливать либо на сервер, либо на все клиентские машины (в случае использования файловой версии), а выигрыша особого для простых задач он не даст.
д) Стандартные диалоги выбора Сервера
и БД
е) На вопрос сохранения пароля рекомендую ответить "да", иначе так и не получится это дело запустить.
ж) Выбираете таблицу и реквизиты... замечательная возможность - её можно сразу же переименовать так как вам нравится (и реквизиты тоже), при этом в свойствах у вас будут отображаться названия полей источника данных
з) А теперь запускаете, открываете конструктор запросов - выбираете тупо все записи из таблицы и ОПА - ошибка. Что делать? Если у вас управляемый интерфейс - заглянуть в меню сервис, а если обычный...
Я лично использовал вот такой код:
Может каких-то кусков и не нужно, но это работает.
Выполнить код нужно ОДИН РАЗ. После чего будет нормально подключаться... мистика конечно - зачем это было нужно не понятно...
2) Источники данных только для чтения - Да, чудес не бывает... но иногда так хочется....
3) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВНУТРЕННИМИ ИСТОЧНИКАМИ ДАННЫХ
Меня лично этот факт убил наповал
Как же так.... то чего так ждали и уже представляли и облизывались как мы сейчас в одном запросе соединим наши данные с 1С-кой свернём - сгруппируем, вставим в отчет, а не тут то было...
Но естественно опытных людей это не останавливает... какая мысль пришла в голову? Правильно - временные таблицы:
4) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВРЕМЕННЫМИ ТАБЛИЦАМИ
А вот это уже не похоже на технологические трудности, а очень смахивает на то что нам хотят "чтобы жизнь раем не казалась" сделать .
5) Можно использовать только в соединениях СКД
Для тех кто не знает - это в СКД на вкладке "Связи наборов данных". Часто вы ими пользуетесь? Удобно? Видимо так нас хотят принудить к использованию их чаще. Вот только там есть колонка "Условие связи" и "Параметр связи". Ни в одной типовой конфигурации не нашел примера их использования, в документации и у Хрусталевой тоже как-то всё не прозрачно. Кто-нибудь сможет мне объяснить как работает "условие связи". Если там написать РеквизитИсточника = РевизитПриемника это не работает. Конечно условие можно записать в поле "Выражение" - в большинстве случаев этого хватает... вот только как-то не очень просто получается.
Итого ранее эта задача решалась где-то так:
Собственно строчек кода не много и они достаточно стандартны... при этом можно пользоваться полным функционалом конструктора запросов, а в СКД отдать только функцию КОМПАНОВКИ ДАННЫХ
Но на вид чуть конечно не так красиво... да и выгрузка в таблицу значений каждый раз нужно код писать и проверять не ошибся ли в названии реквизитов... а то что нам дали в 1С выглядит как-то половинчато. Я ещё не определился чем удобнее пользоваться. Вы решайте, и пишите о ваших решениях, и что вас к ним подтолкнуло.
Автор: Олег Филиппов
Для 1С 8.2:
Есть несколько способов для того, чтобы открыть форму списка с некоторым, заранее установленным отбором. Рассмотрим их по-порядку:
1. Первый способ заключается в том, что при открытии формы можно задать параметр формы Отбор, и открыть форму списка с этим параметром. Параметр Отбор представляет собой структуру. Имена элементов соответствуют именам полей, по которым производится отбор, а значения содержат значения отбора. Это параметр расширения управляемой формы динамического списка. То есть он существует у форм, основным реквизитом которых является реквизит типа Динамический Список, например у форм списка и форм выбора.
В процессе открытия формы будет установлен отбор по указанному полю.
2. Можно открыть форму списка без параметров:
И затем, в обработчике события формы списка приходных накладных ПриСозданииНаСервере написать код, который создает отбор в динамическом списке, являющемся основным реквизитом формы:
Преимущества данного метода в том, что ВидСравнения у отбора можно задавать не только Равно, как в первом случае, а и Больше, Меньше и т.п.
Но у такого способа есть и очень существенный недостаток: с этим отбором форма будет открываться всегда. Откуда бы ее ни вызвали. Поэтому такую форму не следует назначать основной. А если все же она основная - то перед установкой отбора, необходимо предусмотреть какой-то анализ того, откуда открывается эта форма. Например, анализируя параметры формы.
3. И наконец, условие отбора можно поместить в произвольный запрос, выбирающий данные для динамического списка. Например, нам нужно открыть список приходных накладных, в которых присутствует номенклатура, выделенная в списке номенклатуры.
Для этого в форме списка номенклатуры создадим команду и соответствующую ей кнопку Приходные накладные.
Обработчик выполнения этой команды заполним следующим образом:
В этом обработчике мы получаем форму списка приходных накладных и передаем в параметр формы ФильтрПоТовару ссылку на текущий элемент в списке номенклатуры и открываем форму с этим параметром.
Затем создадим форму списка документов ПриходнаяНакладная и создадим реквизит формы ФильтрПоТовару, который мы будем использовать в качестве параметра формы при ее открытии. Теперь откроем палитру свойств основного реквизита формы Список. Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть.
В поле Запрос введем следующий текст запроса:
В запросе мы используем параметр Товар, в который и будет передаваться ссылка на текущую строку в списке номенклатуры, содержащуюся в параметре формы списка приходных накладных ФильтрПоТовару. Для этого в обработчике события формы списка ПриОткрытии напишем код для установки значения параметра запроса Товар:
Здесь Список.Параметры - это список параметров запроса динамического списка для реквизита Список. Значение параметра Товар устанавливается равным значению параметра формы ФильтрПоТовару.
В результате по нажатию кнопки Приходные накладные в форме списка номенклатуры мы будем получать список только тех приходных накладных, в которых присутствует номенклатура, выделенная в данный момент в списке номенклатуры.
Заполнение настроек на этой закладке служит для настройки отчета по-умолчанию в пользователь-ском режиме работы отчета.
Окно для настройки отчета доступно в пользовательском режиме отчета, при этом отличие от на-стройки СКД в конфигураторе в том, что можно использовать значения не предопределенных дан-ных из базы данных.
Окно настроек состоит из основного окна, где выводятся списки группировок, таблиц и диаграмм и набора закладок в которых устанавливаются параметры настроек для объектов указанных в секции группировок. Какие именно редактируются настройки в данный момент мы можем указать нажав на кнопку с надписью о том какой объект мы редактируем:
Возможно, редактировать общие настройки для всего отчета, а нажав на соответствующую кнопку можно редактировать настройки исключительно для выбранного объекта: элемента группировки, таблицы, диаграммы.
Закладка «Параметры данных»
На этой закладке устанавливаются значения параметров данных. Список доступных параметров данных определяется на закладке «Параметры» схемы СКД, здесь же устанавливаются только пользовательские значения параметров. Причем доступны только те параметры, для которых в схеме СКД сброшена галочка «Ограничение доступности».
В таблице присутствуют несколько колонок:
1. «Использование» - галочкой пользователь указывает использовать или не использовать данный параметр для формирования отчета.
2. «Параметр» - имя параметра
3. «Значение параметра» - значением параметра или указание, откуда значение параметра можно извлечь. Например, если сбросить текущее значение, нажав на «Х», то нажав на кнопку «Т» откроется выбор типа параметра в диалоге:
Источником может служить, какое либо значение простого типа Строка, Дата, Число, Булево или ссылка на объект в базе данных. А также источником для данного параметра может быть значение другого параметра, для этого нужно выбрать значение «Поле компоновки данных» и выбрать нужное поле из списка параметров.
Для даты можно назначать автоматические значения для подстановки: «Начало этого дня», «Начало этой недели» и т.д.
Закладка «Выбранные поля»
На этой закладке определяются поля, кроме группировок, которые будут выводиться отчет. На за-кладке два списка с доступными полями и выбранными полями. Кроме полей определенных в наборах данных к выводу доступны параметры и системные поля «Номер по порядку», «НомерПоПорядкуВГруппировке», «Уровень», «УровеньВГруппировке», а также пользовательские поля определенные на закладке «Пользовательские поля».
Переносить поля можно двойным нажатием на название в левом окне или воспользовавшись специальной кнопкой в командной панели. Добавлять можно такие элементы «Новое поле», «Новая группа», «Новое автополе». «Новое поле» - добавляет элемент в котором можно выбрать поле из доступного списка полей. «Новая группа» - можно сгруппировать ряд полей под одной шапкой. «Новое автополе» - используется для того чтобы указать, что поля выводимые для группировок будут выбираться из настроек группировки вышестоящего уровня. Например, определив для всего отчета ряд полей-ресурсов, мы, указав новое автополе для группировок. Удалить элементы можно с помощью кнопки Удалить, передвинуть по позиции с помощью кнопок перемещения. Установкой галочек можно регулировать видимость полей в отчете.
После определения набора полей мы можем отредактировать поля в списке, нужно войти в режим редактирования поля, нажать на кнопку выбор и выбрать из списка нужное поле.
Для ресурсов доступны для выбора уточнения для расчетов реквизита: «% в группе» - используется для расчета доли значения ресурса для всей группировки в группе, т.е. в итоге в группе по совокупности значений ресурса будет 100%; «% общий» - общий процент не зависимо от группы по всем значениям ресурса.
Для полей объектного типа справочник, документ и т.д. возможно указать в выбранные поля реквизит объекта.
Закладка «Отбор»
На этой закладке определяются отборы, которые влияют на результат отчета.
Как и на закладке «Выбранные поля» есть два окна, слева все доступные поля СКД для выбора в отбор, в правом элементы и значения которые влияют на отбор. Добавить новый элемент или группу элементов можно также клавишей Добавить. Удалить элементы можно с помощью кнопки Удалить , передвинуть по позиции с помощью стрелок перемещения. Установкой галочек можно регулировать активность того или иного отбора в отчете. После нажатия кнопки «Подобно» в списке элементов отбора добавляются уточняющие реквизиты отбора: «Режим отображения» и «Представление».
После добавления нового элемента в список отборов для редактирования доступны поля:
• «Левое значение» - поле СКД или поле простого типа («Число», «Строка», «Дата», «Булево»), на которое накладывается отбор
• «Вид сравнения» - список возможный условий отбора: «Равно», «Не равно», «В списке», «В группе из списка», «В группе», «Не в списке», «Не в группе из списка», «Не в группе», «Со-держит», «Не содержит», «Заполнено», «Не заполнено»
• «Правое значение» - значение отбора, соответствует значению поля «Левое значение». В случае если «Вид сравнения» равен «В списке», «В группе из списка», «Не в списке», «Не в группе из списка» то для установки доступен список значений
• «Режим отображения» - возможный два варианта «Быстрый доступ» и «Обычный». В случае если установлен «Быстрый доступ» то если это возможно значения для выбора отображаются в виде выпадающего списка, особенно это актуально для небольших редко меняющихся справочников, перечислений или видов характеристик. «Обычный» - способ отображения значений принятый для объектов по-умолчанию в виде формы выбора или списка.
• «Представление» - текстовое представление отбора в сокращенном режиме (если не нажата кнопка «Подробно»), а также представление отбора при выводе отчета.
В отборы можно добавлять группы – которые служат для объединения нескольких отборов, по какому либо критерию «И», «ИЛИ», «НЕ».
Например, нужно объединить несколько условий с помощью оператора «И». Для этого нужно в отбор добавить «Группа И» в этой группе перечислить условия. Допускается вложенность групп, с помощью которых можно создавать сложные условия. Кроме «Группа И» доступны «Группа ИЛИ» и «Группа Не». По-умолчанию просто список условий отбора не принадлежащий, какой либо группе соединен между собой с помощью оператора «И».
Закладка «Сортировка»
На данной закладке указываются поля, по которым производится сортировка.
Добавление полей на данной закладке аналогичное тому, как это делается на закладке «Выбранные поля». Единственный параметр, который указывается в выбранных полях сортировки, это направление сортировки.
Закладка «Условное оформление»
На закладке «Условное оформление» мы указываем, какие поля, условия отборов и условия оформления будут применятся при выводе полей в отчет.
«Область» - список полей, на которые влияет условное оформление.
«Отбор» - условия отбора при которых условное оформление действует
Условия отбора указываются также как и на закладке «Отбор» основного окна настройки компоновки.
«Условное оформление» - при заполнении данного поля выводится окно с выбором возможных опций оформления для указанных полей.
Список возможных опций оформления:
Цвет фона - Определяет цвет фона в ячеках
Цвет текста - Определяет цвет текст в ячейках
Цвет в диаграмме - Определяет цвет линий в диа-грамме
Цвет границы - Цвет линий границы
Стиль границы - Типы линий границы
Стиль границы слева - слева
Стиль границы сверху - сверху
Стиль границы справа - справа
Стиль границы снизу - снизу
Шрифт - Вид шрифта, толщина, наклон и т.д.
Отступ - Количество знаков отступа
Авто отступ - Количество знаков отступа, применяется в группировках
Горизонтальное положение - Положение текста в ячейке по горизонтали
Вертикальное положение - Положение текста в ячейке по вертикале
Размещение - Размещение текста который не помещается в ячейку
Ориентация текста - Ориентация текст в градусах (например, 90-поворот перпендикулярно)
Формат - Форматная строка значения
Выделять отрицательные - Признак того чтобы выделять отрицательные значения
Минимальная ширина - Минимальная ширина ячейки в пунктах
Минимальная высота - Минимальная высота ячеки
Максимальная высота - Максимальная высота
Текст - Текст который выводится вместо значения
Закладка «Пользовательские поля»
На данной закладке можно указать пользовательские поля и формулы, по которым поля будут вычисляться.
При нажатии на добавление поля откроется выбор типа пользовательского поля: «Новое поле вы-бор», «Новое поле выражение».
«Поле выбор» - появляется диалог конструирования нового поля выбора. Данное поле будет принимать заданные значения в зависимости от условия отбора заданного в таблице «Варианты».
«Поле выражение» - используется в случае когда, нужно не меняя схемы компоновки вставить вы-числяемые поля. Например, в схеме указаны ресурсы «Количество» и «Сумма». В пользовательском режиме мы хотим вычислить цену. Для этого мы в поле конструирования выражения вставляем формулу:
В пользовательских полях можно использовать выражения из запросов.
Также для обозначения итоговых записей в выражении нужно использовать агрегатные функции СУММА(..), КОЛИЧЕСТВО(), МИНИМУМ(..), МАКСИМУМ(..)
Закладка «Другие настройки»
На закладке «Другие настройки» определяются настройки, которые влияют на расположение группировок, полей выбора, ресурсов и т.д.
Макет оформления Заданные предопределенные макеты оформления
Расположение итогов Параметр влияет на расположение итогов
Расположение полей группировок
Расположение группировок
Расположение реквизитов
Расположение ресурсов
Расположение общих итогов по горизонтали
Расположение общих итогов по вертикали
Тип заголовка полей
Тип диаграммы
Базовое значение
Пропускать базовое значение
Состав подписей
Режим раздвижения
Отображать таблицу данных
Максимальное значение
Минимальное значение
Окантовка
Градиент
Шрифт
Цвет фона
Стиль линии
Размещение легенды
Полосы измерительной диаграммы
Выводить заголовок
Заголовок
Выводить параметры данных
Выводить отбор
Окно настройки группировок
Настройки схемы компоновки данных могут содержать структуру, включающую в себя доступные элементы настроек.
Такими элементами являются:
• группировка;
• таблица;
• диаграмма;
• вложенный отчет.
Для группировки доступны следующие настройки:
• Флаг использования группировки - если установлен - группировка используется при компоновке;
• Поля группировки - набор полей, по которым осуществляется группировка. Каждое поле группировки системы компоновки данных обладает следующими свойствами:
- Флаг использования поля - если установлен - поле используется;
- Поле группировки - путь к данным поля, по которому осуществляется груп-пировка;
- Тип группировки – тип группировки (Иерархия, Только иерархия, Элемен-ты);
- Тип дополнения – необходимость дополнения дат в периоде;
- Начальная дата - начальная дата периода. Может содержать константное зна-чение, либо значение – поле;
- Конечная дата - конечная дата периода. Может содержать константное значе-ние, либо значение - поле;