В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают!
Для клиента нужно было сделать вывод объектов на карту
Не найдено ни одного сервера с размещенным сервисом serviceName = DebugService
или
Не найдено ни одного сервера с размещенным сервисом serviceName = JobService
то для исправления этой ошибки - серверу необходимо назначить функциональность:
1. Откройте Панель Администрирования серверов и перейдите в раздел Требования назначения функциональности
2. Добавите общую функциональность с типом требования Назначить
3. Примените требования
4. Все должно работать
Я указал общие требования, т.к. баз на сервере мало, нагрузки практически нет, Но требования назначения функциональности имеют более глубокий смысл:
Требование назначение функциональности определяет:
Для какого объекта требования создается требование. В качестве объекта требования могут выступать некоторые сервисы 1 кластера, клиентские соединения и произвольный объект требования. В качестве объекта требования могут выступать следующие сервисы кластера:
Блокировок объектов.
Времени.
Журналов регистрации.
Заданий.
Нумерации.
Полнотекстового поиска.
Пользовательских настроек.
Сеансовых данных.
Транзакционных блокировок.
Работы с внешними источниками данных через ODBC.
Работы с внешними источниками данных через XMLA.
Сервис лицензирования.
Сервис фонового обновления конфигурации базы1 данных.
Сервис тестирования.
Сервис внешнего управления сеансами.
Определяет тип требования. Тип требования определяет, каким образом будет выполняться использование рабочего сервера:
Не назначать - означает, что рабочий сервер, для которого создано данное требование, не будет назначен для обслуживания объекта требования, подходящего под условия, заданные в требовании.
Назначать - означает, что рабочий сервер, для которого создано данное требование, будет являться одним из кандидатов на обслуживание данного объекта требования (если рабочих серверов будет несколько).
Авто - означает, что рабочий сервер может быть использован для обслуживания объекта требования в том случае, если нет рабочего сервера с явным указанием необходимости использования.
Тип требования Авто - имеет смысл использовать тогда, когда в списке требований рабочего сервера есть требование с более широким набором условий, и необходимо иметь требование для более узкого набора условий. Например, данный сервер не может обслуживать соединения клиентских приложений для всех информационных баз, кроме одной информационной базы, для которой такое обслуживание разрешено.
Дополнительные параметры, необходимые кластеру серверов для принятия решения в ряде случаев:
Имя информационной базы. Используется для уточнения требования для формирования требований для клиентских соединений и всех сервисов кластера, которые могут выступать в качестве объекта требования, кроме сервиса лицензирования.
Дополнительные параметры. Используются для уточнения требований при размещении клиентского соединения или сервиса сеансовых данных. Дополнительный параметр проверяется на совпадение с началом соответствующего параметра объекта требования. Дополнительный параметр может принимать одно из следующих значений:
Для указания всех фоновых заданий: BackgroundJob. CommonModule .
Для указания конкретного отчета: BackgroundJob.Report.<Имя отчета;.
Для указания всех отчетов: BackgroundJob.Report.
Для указания фоновой реструктуризации: SystemBackgroundJot.
Для клиентского приложения:
1CV - толстый клиент.
1CV8CDirect- тонкий клиент в случае прямого подключения к серверу «1С:Предприятия».
Designer - конфигуратор.
COMConnectior - COM-соединение.
WebServerExtensior- соединение с информационной базой через веб-сервер: веб-клиент, тонкий клиент в случае подключения через веб-сервер, Web-сервис.
Рассмотрим, как работает кластер серверов при обработке требований.
В случае необходимости выполнить размещение объекта требования, кластер выполняет следующие действия:
1. На всех серверах, входящих в состав кластера, выполняется обработка заданных для этих серверов требований назначения функциональности. Обход серверов и требований выполняется в порядке следования этих объектов в консоли кластера.2.
2. В каждом списке требований определяется первое требование, которое удовлетворяет размещаемому объекту: по собственно объекту, информационной базе и дополнительному параметру.
3. Затем полученный список рабочих серверов сортируется по признаку типа требования так, что первыми оказываются рабочие сервера с явным указанием использования. Рабочие сервера, для которых подходящее требование содержит явный запрет на использование - исключаются из списка доступных рабочих серверов. При этом назначение выполняется следующим образом:
Есть рабочие сервера с явным указанием использования: в этом случае объект требования будет обслужен одним из этих рабочих серверов.
Нет рабочих серверов с явным указанием использования: происходит попытка использовать рабочие сервера с автоматическим указанием использования или те рабочие серверы, для которых не указано требований.
При размещении клиентского соединения, из списка доступных серверов будет выбран тот, в состав которого входит рабочий процесс с наивысшей доступной производительностью.
Клиентское приложение, инициировавшее размещение объекта требования, будет завершено аварийно в одном из следующих случаях:
Если для объекта требования список рабочих серверов оказывается пустым - нет ни одного рабочего сервера, который может обслужить объект. При этом объект требования не будет размещен и будет вызвано исключение.
Если невозможно выполнить размещение на выбранном рабочем сервер, например, если выбранный сервер вышел из строя, и нет альтернативных рабочих серверов.
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С:
«1C:Enterprise Development Tools» – это инструмент нового поколения для разработчиков бизнес-приложений системы программ «1С:Предприятие 8».
Планируется, что он будет использоваться для создания приложений параллельно с текущим инструментом (конфигуратором). При этом формат разрабатываемых приложений будет полностью соответствовать текущим версиям 1С:Предприятия 8. Преимуществами нового инструмента разработки являются: интегрированная среда разработки (соответствие современным тенденциям и требованиям), быстрое развитие инструментов разработки, возможность расширения инструментов разработки. В DT заложена принципиально новая архитектура, которая обеспечивает большой запас развития для реализации различных механизмов автоматизации разработки и повышения удобства разработки. В ознакомительной версии возможности этой архитектуры задействованы только в небольшой части. В данный момент важно реализовать функциональность, аналогичную конфигуратору, но основное предназначение DT в возможности создания новых мощных инструментов для разработчика.
DT разработан с использованием открытой платформы Eclipse (www.eclipse.org). За счет данной интеграции технологий, инструмент объединил в себе преимущества как инструментов разработки «1С:Предприятия», так и стандартных возможностей Eclipse.
Схема работы Конфигуратора
Конфигуратор (входящий в состав системы программ «1С:Предприятие» версии 8.x) работает с конфигурацией, описывающей прикладное решение. Конфигуратор подключается к информационной базе, в которой (во внутреннем формате) хранится конфигурация. В один момент времени конфигуратор может работать только с одной информационной базой, и, как следствие, только с той конфигурацией, которая хранится в этой информационной базе. Более того, для запуска и отладки используется одна версия платформы «1С:Предприятие» – та, с помощью которой выполняется подключение к информационной базе.
Схема работы «1C:Enterprise Development Tools»
DT предлагает принципиально другую схему работы.
Во-первых, конфигурация хранится не в информационной базе, а в файловой системе. Из этого вытекает возможность использования популярной системы контроля версий (git, svn), что, очевидно, является вторым существенным преимуществом. При этом следует понимать, что DT не реализует работу с системой контроля версий самостоятельно, а использует готовые механизмы платформы Eclipse. Поэтому использоваться может только та система контроля версий, поддержка (расширение) которой есть в Eclipse.
Хранение редактируемой конфигурации в файловой системе, а не в информационной базе, означает, что редактирование конфигурации можно выполнять вообще без системы «1С:Предприятие», установленной на компьютере разработчика. Однако, при необходимости запустить прикладное решение или отладить какой-то механизм, наличие установленной версии «1С:Предприятия» является обязательным.
Главные Enterprise Development Tools отличия от обычного Конфигуратора:
1. Платформа Eclipse и возможность написания своих плагинов для удобства работы
2 . Кросплатформенность, т.е наконец-то можно работать на Mac
3. Конфигурация хранится не в информационной базе, а в файловой системе. Из этого вытекает возможность использования популярной системы контроля версий (git, svn)
4. Разрабатываемая конфигурация может использоваться с разными информационными базами и разными версиями «1С:Предприятия»
5. Одновременно можно редактировать несколько конфигураций
6. Работа в DT имеет некоторые отличия в части работы с объектами конфигурации и сохранения результатов работы, т.к. используется платформа Eclipse
7. Более удобная и быстрая командная разработка
Скачиваем и запускаем установку:
1. Сначала платформу 8.3.6
2. потом Enterprise Development Tools
Скачиваем, разархивируем и запускаем DT.exe и получаем ошибку , но это не проблема
Надо установить Java RE, идем на сайт oracle и скачиваем соответствующую вашей операционной системе версию и устанавливаем
иииииии - барабанная дробь вот она, новая среда разработки:
При первом запуске будет запрошен каталог хранения рабочей области. Установка флажка Use this as the default and do not ask again (Использовать это значение по умолчанию в дальнейшем) приведет к тому, что указанный каталог будет автоматически использовать при последующих запусках DT. Для смены рабочей области следует использовать команду File – Switch Workspace (Файл – Сменить рабочую область).
Открылся 1C: Enterprise Development Tools:
Добавление конфигурации
Добавить конфигурации можно по разному, можно загрузить из файла, можно из файлов, можно из git, а можно через импорт существующей базы.
В правом нижнем углу отображены Информационные базы, импортируем одну для теста:
Появляется окно
Если что-то не так, то изменяем и жмем Готово (Кстати, если база открыта в обычном конфигураторе, то вылетит ошибка!)
Идет импорт, спросит пользователя и пароль...
На моем Core i5 с 6 ГБ оперативки, импорт тестовой базы размером 2.5 мегабайта шел чуть больше минуты. И вот с открытым справочником Номенклатура:
Форма
Модуль (подсветка синтаксиса попроще)
Мгновенное определение ошибок (наведя курсор):
Щелкнув по красному крестику - предлагает решение, Создать Элемен , хотя надо просто дописать букву т
Слева в разделе Схема отражены все функции модуля, можно быстро перемещаться по ним:
Синтаксис-помощник мгновенно показывает информацию по свойству или функции на которой установлен курсор
Еще один интересный раздел, все огрехи в конфигурации:
Схема компоновки данных из отчета:
Так же мгновенно показывает ошибки и недочеты в запросе!
Конструктор запроса выглядит так:
Открыть Перспективу
Отладка - думаю, понятно и не буду останавливаться
Ресурсы - показывает разложенную по файлам конфигурацию. Каждый файл можно открыть для просмотра:
Синхронизация совместной работы - допустим через Git
Git - Подключение к Git
Справочная система
Справка , по сути, как и в обычном конфигураторе, только дополненная, выглядит так:
Использование помощника HelpF.pro
Наш помощник пока работает только под Windows, но вскоре мы скомпилируем под Linux и Mac
Открыв код, жмем Alt+H и в появившемся окне вводим запрос (например проверка это новый?) и жмем Найти
В результатах поиска выбираем нужное нам:
Далее в статье (1) выделяем нужный нам код и (2) жмем появившуюся кнопку Вставить
Результат вставки:
Кроме этого работают и горячие клавиши:
Вот пример нажатия Alt+D (Внимание! Alt - правый, левый работает штатно):
Первым делом, после установки кластера 1С ранее нужно было создать рабочие процессы. Как оказалось, процессы кластера начали создаваться автоматически в зависимости от нагрузки базы.
Пробный запуск фоновых заданий основной базы заставило кластер 1С бесконечно перегружать rphost.exe и дополнительный rphost.exe никак не хотел создаваться. Покопавшись в настройках все стало понятно.
Максимальный объем памяти рабочих процессов - это объем памяти, который могут использовать рабочие процессы вместе. Нужно быть очень внимательными при установке параметра, измеряется в байтах. Если установить неверное значение (недостаточное для нормальной работы пользователей) пользователям будет выдана ошибка "Недостаточно свободной памяти на сервере 1С". Так же эту ошибку можно получить, когда на сервере 1С закончилась квота по памяти.
Безопасный расход памяти за один вызов - позволяет контролировать расход памяти при серверном вызове, измеряется в байтах. Если вызов использует больше памяти чем положено, этот вызов будет завершен в рамках кластера 1С без перезапуска рабочего процесса (rphost.exe). Соответственно "неудачник", который выполнил вызов сервера, утратит сеанс с базой 1С без влияния на работу других пользователей.
в одном ГБ - 1073741824 Байт, следовательно в 2 ГБ - 2147483648 Байта
Объем памяти рабочих процессов, до которого сервер считается производительным - при превышении этого параметра сервер в кластере 1С перестанет принимать новые соединения.
Количество ИБ на процесс - позволяет изолировать информационные базы по рабочим процессам. По умолчанию у текущего кластера 1С было установлено значение - "8", но на протяжении нескольких часов работы сервер себя очень нестабильно, сеансы пользователей зависали. После изоляции каждой информационной базы (значение - "1") проблемы пропали.
Количество соединений на процесс - по умолчанию значение "128". Так как у текущей базы очень большая нагрузка фоновыми заданиями (расчет логистики, анализ прайсов, анализ конкурентов и прочее) было принято решение уменьшить количество до "25".
Немного изменились настройки и самого кластера 1С:
Уровень отказоустойчивости - это количество рабочих серверов, которые могут одновременно выйти из строя, и это не приведет к аварийному завершению работы пользователей. Резервные сервисы запускаются автоматически в количестве, необходимом для обеспечения заданной отказоустойчивости. В реальном режиме времени выполняется репликация активного сервиса на резервные.
Режим распределения нагрузки - есть два варианта параметра: "Приоритет по производительности" - памяти сервера тратится больше и производительность выше, "Приоритет по памяти" - кластер 1С экономит память сервера.
Сервер 8.3 характеризуется переработанным заново внутренним кодом, хотя «снаружи» может показаться что это слега доработанный 8.2.
Сервер стал более «авто настраиваемым», часть параметров типа количества рабочих процессов теперь не создается вручную, а рассчитывается исходя из описаний требований задач по отказоустойчивости и надежности.
Это снижает вероятность неправильной настройки сервера и понижает требования к квалификации админов.
Получил развитие механизм балансировки нагрузки, который можно использовать либо для повышения производительности системы в целом, либо использовать новый режим «экономии памяти», который позволяет работает «с ограниченной памятью» в случаи если используемая конфигурация «любит отъедать память».
Стабильность работы при использовании больших объемов памяти определятся новыми параметрами рабочего сервера.
Особенно интересен параметр «безопасный расход памяти за один вызов». Для тех кто плохо представляет что это такое - лучше не тренируйтесь на «продуктивной» базе. Параметр «Максимальный объем памяти рабочих процессов» позволяет при «переполнении» не обваливать весь рабочий процесс, а только один сеанс «с неудачником». «Объем памяти рабочих процессов, до которого сервер считается производительным» позволяет заблокировать новые соединения как только будет преодолен этот порог памяти.
Рекомендую изолировать рабочие процессы по информационным базам, к примеру указать параметр «Количество ИБ на процесс = 1″. При нескольких высоконагруженных базах это позволит уменьшить взаимное влияние как по надежности, так и по производительности.
Отдельный вклад в стабильность системы вносит «расходование» лицензий/ключей. В 8.3 появилась возможность использования «менеджера программных лицензий» напоминая менеджер «аладина». Цель - возможность вынести ключ на отдельную машину.
Реализован он в виде еще одного «сервиса» в менеджера кластера. Вы можете использовать к примеру «свободный» ноутбук. Добавьте его в кластер 1с 8.3, создайте на нем отдельный менеджер с сервисом «сервис лицензирования». В ноутбук можно воткнуть аппаратных hasp-ключ, или активировать программные лицензии.
Наибольший интерес для программистов должен представлять «Требования назначения функциональности».
Требования назначенной функциональности 1с
Так на ноутбуке с ключом защиты чтобы не запускать пользователей на сервер кластера надо добавить «требования» для объекта требования «Клиентское соединение с ИБ» - «Не назначать», т.е. запретить рабочим процессам данного сервера обрабатывать клиентские соединения.
Еще больший интерес предоставляет возможность запускать «только фоновые задания» на рабочем сервере кластера без сеансов пользователей. Таким образом можно высоконагруженные задачи (код) вынести на отдельный машины. При чем можно одно фоновое задание «закрытия месяца» через «Значение дополнительного параметра» запускать на одном компьютере, а фоновое задание «Обновление полнотекстового индекса» на другом.Уточнение происходит через указание «Значение дополнительного параметра». Например если указать BackgroundJob.CommonModule в качестве значения, то можно ограничить работу рабочего сервера в кластере только фоновыми заданиями с любым содержимым. Значение BackgroundJob.CommonModule.<Имя модуля>.<Имя метода> - укажет конкретный код.
Кластер 1С 8.2
Сеансы позволяют выполнять балансировку загруженности и отказоустойчивости в управляемом приложении.
Менеджер кластера теперь стал сложнее. Часть функций теперь можно выделить в отдельный процесс и даже разместить на другом рабочем сервере кластера. Это позволяет балансировать загруженность сервера.
Отказоустойчивость сервера 8.2 достигается за счет:
Хранение информации о сеансе работы пользователя.
Пользователь не привязан больше к рабочему процессу.
Резервирование рабочих процессов в кластере.
Должно быть несколько рабочих процессов, в том числе резервируемые
Резервирование кластеров.
Указывается запасной кластер, при подключении - перечисляются в строке соединения
Это позволяет обеспечить непрерывность работы!
При разрыве физического соединения клиента с кластером (уборщица выдернула кабель, отключилось питание сетевого оборудования, неполадки у провайдера) не приходится заново подключаться к информационной базе и начинать всю работу сначала. После восстановления физического соединения пользователь может продолжить работу с того места, на котором она была прервана.
Если требуется техническое обслуживание компьютеров кластера, их можно выключать прямо во время работы, не останавливая работу пользователей с информационной базой.
При выходе из строя любого сервера кластера работа пользователей не остановится она будет автоматически переведена на резервный кластер и/или на резервные рабочие процессы. Для пользователей такой переход будет незаметным.
Если один из рабочих процессов кластера завершится аварийно, подключенные к нему пользователи будут автоматически переведены на другие или резервные рабочие процессы. Такой переход также будет незаметен для пользователей.
Ставя очередное обновление Бухгалтерии получил ошибку "Я работаю только на 8.3.4", ну вот... пришло время поставить 8.3.4. и так:
Процесс скачивания и установки новой платформы я описывать не буду, там все просто.
Служба Агент Сервера 1С
По умолчанию он ставиться на порт 1540, а там у меня крутится 8.2, поэтому меняем в ветке рееста
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent Параметр ImagePath
меняем номера портов, добавляя смещение: "C:\Program Files\1cv8\8.3.4.365\bin\ragent.exe" -srvc -agent -regport 1741 -port 1740 -range 1660:1691 -d "C:\Program Files\1cv8\srvinfo"
Запускаем Агента и Открываем консоль Администрирования серверов 1С и создаем кластер 8.3
Указал имя сервера и настроил на порт 1740 (на 1540 работает 8.2)
Создаем кластер + чуток оптимизировал( У меня всего небольшой ОДИН сервер, поэтому - указываю Интервал перезапуска рабочих процессов и объем памяти. т.к у меня один сервер - уровень отказоустойчивости - 0)
Теперь подробнее:
1. Интервал перезапуска: 86400 сек (24 часа). Момент перезапуска не регламентируется, видимо с момента установки параметров, либо запуска сервера приложений.
2. Также можно указать допустимый объем памяти: 3000000 Кб (3 Гб) - Для сервера с 4 ГБ оперативы, Если ее меньше, то не заполняйте этот параметр!.
3. Интервал превышения допустимого объема памяти — это непрерывный интервал времени превышения допустимого объема памяти, после которого сервер перезапустит процесс. Если указано 0 сек — будет ждать вечно.
4. Количество Рабочих процессов расчитывается автоматически на основании Ваших настроек
5. Уровень отказоустойчивости можно задавать уровень отказоустойчивости кластера как количество рабочих серверов, которые могут одновременно выйти из строя, и это не приведет к аварийному завершению работы пользователей. Резервные сервисы запускаются автоматически в количестве, необходимом для обеспечения заданной отказоустойчивости; в реальном режиме времени выполняется репликация активного сервиса на резервные.
6. Режим распределения нагрузки, который можно использовать либо для повышения производительности системы вцелом, либо использовать новый режим «экономии памяти», который позволяет работает «с ограниченной памятью» в случаи если используемая конфигурация «любит отъедать память».
Рабочий сервер
Сервер у меня простенький, 2 Gb оперативы всего и на нем будет всего 2 базы, поэтому настрою его так:
параметр Количество ИБ на процесс ставлю равным 1, т.е. хочу чтобы для каждой ИБ запускался свой процесс - это позволит уменьшить взаимное влияние как по надежности, так и по производительности. Вы же настраивате под характеристики своего сервера!
Информационная база
Добавляю ИБ:
В стартере пописываю базу:
Требования назначения функциональности
Я у себя это не настраиваю но думаю надо сказать об этом:
Управление кластером заключается в том, что администратор определяет состав компьютеров (рабочих серверов), на которых размещается кластер. Кроме этого (при необходимости) он может определить "требования" к ним: какие сервисы и соединения с информационными базами должны работать на каждом из рабочих серверов. Менеджеры кластера и рабочие процессы запускаются автоматически, исходя из назначенных "требований". "Требования" к рабочим серверам могут быть заданы интерактивно, из консоли администрирования кластера, или программно, из встроенного языка.
Так на ноутбуке с ключом защиты чтобы не запускать пользователей на сервер кластера надо добавить «требования» для объекта требования «Клиентское соединение с ИБ» — «Не назначать», т.е. запретить рабочим процессам данного сервера обрабатывать клиентские соединения. Еще больший интерес предоставляет возможность запускать «только фоновые задания» на рабочем сервере кластера без сеансов пользователей. Таким образом можно высоконагруженные задачи (код) вынести на отдельный машины. При чем можно одно фоновое задание «закрытия месяца» через «Значение дополнительного параметра» запускать на одном компьютере, а фоновое задание «Обновление полнотекстового индекса» на другом. Уточнение происходит через указание "Значение дополнительного параметра". Например если указать BackgroundJob.CommonModule в качестве значения, то можно ограничить работу рабочего сервера в кластере только фоновыми заданиями с любым содержимым. Значение BackgroundJob.CommonModule..- укажет конкретный код.
Профили безопасности
Профили безопасности служат для того, чтобы запретить прикладному решению выполнять действия, которые могут быть потенциально опасны для функционирования кластера серверов.
Администратор кластера может назначить любой информационной базе один из существующих в кластере профилей безопасности. И тогда потенциально опасная функциональность прикладного решения будет ограничена в тех пределах, которые описаны в этом профиле.
Стандартно, после создания, профиль безопасности запрещает выполнение всех потенциально опасных действий:
-обращение к файловой системе сервера;
-запуск COM-объектов;
-использование внешних компонентов 1С:Предприятия;
-запуск внешних обработок и отчётов;
-запуск приложений, установленных на сервере;
-обращение к ресурсам Интернета.
Таким образом защититься от нежелательных действий незнакомого прикладного решения очень просто: нужно создать пустой профиль безопасности и назначить его информационной базе. Далее, если есть необходимость, можно расширять этот профиль, описывая в нём действия, которые разрешается выполнять прикладному решению.
Расположение служебных файлов менеджера кластера в 1С Предприятии 8.3
Если при установке системы! «1С:Предприятие» был выбран вариант запуска сервера «1С:Предприятия» как сервиса, то первый запуск агента сервера будет выполнен еще в процессе установки системы. При этом сервис будет запущен от имени пользователя, выбранного в диалоге установки системы, но служебные файлы кластера серверов будут расположены в каталоге <каталог установки системы 1С:Предприятие>\srvinfo (в параметрах сервиса будет в явном виде указан ключ запуска -d).
Если при установке системы «1С:Предприятие» был выбран вариант запуска сервера как приложения, то запуск сервера в процессе установки системы не выполняется; агента сервера необходимо запустить самостоятельно, после того как установка системы будет закончена. При этом если ключ запуска -d указан не будет, служебные файлы кластера серверов будут расположены в каталоге по умолчанию: %USERPROFILE%\LocalSettings\ApplicationData\lC\lCv8 (%LOCALAPPDATA%\lC\lCv8 для ОС WindowsVista и старше).
ВНИМАНИЕ! Если однажды на данном центральном сервере уже был создан кластер, то при смене варианта запуска агента сервера (сервис, приложение) или при смене пользователя, от имени которого работает агент сервера, всегда следует заботиться о правильном указании пути к каталогу служебных файлов кластера серверов. Если в процессе запуска агент сервера не обнаружит список кластеров, он создаст новый кластер на данном сервере.
В операционной системе Linux служебные файлы кластера серверов будут расположены в папке /home/usrlcv8/.lcv8/lC/lcv8 (или сокращенный вариант записи - ~/.1cv8/1C/1cv8).
При интеграции 1С с веб-сайтами всегда встает вопрос о передачи некоторых данных на веб-сервер. Будь то это передача параметров запроса для получения данных от веб-сервера в 1С или же передача данных из 1С, которые должны быть сохранены или каким-то образом обработаны на веб-сервере. Передаваться могут как простые данные в виде строк, чисел, так и целые файлы (изображения, XML-файлы и прочее). Для передачи и получения файлов и данных на веб-сервер в 1С используется объект HTTPСоединение.
Создание и инициализация HTTP соединения в 1С
Для инициализации HTTP соединения в 1С необходимо создать объект HTTPСоединение и в конструкторе указать параметры HTTP соединения.
<Сервер> (обязательный) - адрес сервера, с которым необходимо установить соединение.
<Порт> (необязательный) - порт сервера, с которым устанавливается соединение.
Значение по умолчанию зависит от защищенности соединения (80 для незащищенного и 443 для SSL-соединения).
<ИмяПользователя> (необязательный) - имя пользователя на указанном сервере.
<Пароль> (необязательный) - пароль пользователя на указанном сервере.
<Прокси> (необязательный). Тип - ИнтернетПрокси. Прокси, используемый для соединения с сервером.
<ЗащищенноеСоединение> (необязательный). Тип - Булево. Определяет используемый протокол -
http или https. По умолчанию Ложь.
Ниже приведен примеры создания HTTPСоединения с сайтом http://www.mysite.ru/.
Передача данных на веб-сервер из 1С методом GET.
Для передачи данных на веб-сервер из 1С методом GET используется процедура Получить() объекта HTTPСоединение.
<Источник> (обязательный). Тип - Строка. Адрес ресурса на сервере.
<ИмяВыходногоФайла> (обязательный). Тип - Строка. Имя файла на диске, в который
помещаются данные, полученные от сервера (ответ сервера).
<Заголовки> (необязательный). Тип - Строка. Заголовки, добавляемые к запросу на сервер.
Текстовые пары вида <Заголовок>:<Значение>, разделенные комбинацией ВК + ПС.
(подробнее о заголовках будет сказано ниже).
Рассмотрим параметры процедуры Получить() более подробно:
В качестве источника указывается строка с адресом запроса, идущая после названия домена и символа "/". Так, если необходимо отправить данные на адрес https://www.mysite.com/getusers.php, то при создании HTTP соединения в конструкторе HTTPСоединение в поле "Сервер" указывается "www.mysite.com", признак защищенного соединения устанавливается в Истина, а в процедуре Получить() в параметре Источник указывается "getUsers.php".
В поле ИмяВыходногоФайла указывает имя файла на диске, в который будут сохранены данные, полученные от сервере в результате запроса. Так, например, если сервер возвращает список пользователей в формате XML, то на диск в указанный файл будет сохранен XML файл со списком пользователей.
О заголовках более подробно будет сказано ниже.
Так же, при запросе к веб-серверу зачастую передаются дополнительные данные (параметры) для этого запроса. Параметры от адреса источника отделяются символом "?". Каждый параметр задается в формате <Имя_Параметры>=<Значение_Параметры>. Параметры от адреса источника отделяются символом "?". Сами же параметры отделяются друг от друга символом "&". В результате строка адреса источника может выглядеть следующим образом: getUsers.php?owner_id=263544&count=100.
Ниже приведен пример, поясняющий все выше сказанное.
Заголовки HTTP
Ниже приведена общая информация о HTTP заголовках из википедии.
Заголовки HTTP (англ. HTTP Headers) — это строки в HTTP-сообщении, содержащие разделённую двоеточием пару имя-значение. Формат заголовков соответствует общему формату заголовков текстовых сетевых сообщений ARPA. Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой.
Все заголовки разделяются на четыре основных группы:
General Headers (рус. Основные заголовки) — должны включаться в любое сообщение клиента и сервера.
Request Headers (рус. Заголовки запроса) — используются только в запросах клиента.
Response Headers (рус. Заголовки ответа) — только для ответов от сервера.
Entity Headers (рус. Заголовки сущности) — сопровождают каждую сущность сообщения.
Именно в таком порядке рекомендуется посылать заголовки получателю.
Более подробно о заголовках HTTP можно прочитать здесь. Так же можно ознакомится со списком заголовков HTTP.
От себя лишь добавлю, что, если это явно не указано в требованиях к отправке данных веб-серверу заголовки HTTP для метода GET можно не указывать. Для метода POST обычно нужно указать заголовки Content-Type (тип передаваемых данных, например: "Content-Type: text/html;charset=utf-8") и Content-Length (размер передаваемых данных в байтах, например: "Content-Length: 1348").
Напомню, что HTTP заголовки в 1С указываются строкой в виде текстовых пар "<Заголовок>:<Значение>", разделенных комбинацией символов ВК+ПС.
Также заголовки можно задать типом Соответствие, где в качестве ключа указывается заголовок, а в качестве значения - значение заголовка.
Ниже приведены поясняющие примеры:
Передача данных на веб-сервер из 1С методом POST.
Общие сведения.
Для передачи данных на веб-сервер из 1С методом POST используется процедура ОтправитьДляОбработки() объекта HTTPСоединение.
<Источник> (обязательный) - Имя файла-источника, который будет отправлен
на сервер для обработки.
<АдресРесурса> (обязательный). Тип - строка. Адрес ресурса на сервере,
в который посылаются данные из источника.
<ИмяВыходногФайла> (обязательный) - Имя файла на диске, в который записываются
полученные с сервера данные.
<Заголовки> (необязательный). Тип - строка. Заголовки, добавляемые к запросу на сервер.
Текстовые пары вида <Заголовок>:<Значение>, разделенные комбинацией ВК + ПС.
(подробнее о заголовках будет сказано ниже).
Рассмотрим параметры процедуры ОтправитьДляОбработки() подробнее:
В качестве источника указывается файл, содержимое которого необходимо отправить на сервер для обработки. Подробнее о формировании содержимого файла-источника будет сказано ниже.
Поле АдресРесурса аналогично полю Источник процедуры Получить(), т.е. указывается строка с адресом запроса, идущая после имени домена и символа "/".
Поле ИмяВыходногоФайла также аналогично одноименному полю процедуры Получить(), т.е. содержит имя файла, в котором будут сохранены данные, полученные от сервера в результате обработки исходных данных.
О заголовках было упомянуто выше. Напомню лишь, что для метода POST обычно указываются заголовки Content-Type и Content-Length. В качестве параметра заголовка Content-Length указывается размер файла-источника, преобразованный с помощью функции XMLСтрока().
Ниже приведен пример, поясняющий все выше сказанное.
Передача параметров методом POST.
Для передачи параметров, аналогично методу GET, можно сформировать строку параметров, записать их в текстовый файл и отправить этот файл на сервер для обработки. Ниже приведен пример аналогичный примеру отправки методом GET, но теперь те же данные отправляются методом POST.
Передача файлов методом POST.
Зачастую данные для обработки задаются не виде строки параметров разделенных "&", как в рассматриваемых выше примерах, а виде файла определенного формата, например XML или JSON. Рассмотрим пример отправки данных на веб-сервер для обработки методом POST, которые задаются в формате XML. Например, сервер может добавить ваш комментарий к материалу. В описании процедуры добавлении сказано, что данные необходимо отправлять по адресу www.mysite.com/addComment.php. Сами данные должны быть переданы в следующем виде:
где:
<ID_Пользователя> - id пользователя на сайте, от имени которого добавляется комментарий;
<ID_Материала> - id материала на сайте, к которому добавляется комментарий;
<Текст_Комментария> - текст комментария.
Предположим, что нам уже известны id пользователя и материала и они хранятся в переменных user_id и post_id. Ниже приведен пример, решающий нашу задачу.
Загрузка файлов (изображений, документов и т.п.) на веб-сервер методом POST.
Зачастую возникает необходимость загрузки файлов на веб-сервер. Это может быть, например, изображение к статье на сайте, или фотография для альбома, или архив для файлообменника. Ранее мы рассматривали передачу методом POST параметров или просто файлов. Таким же образом можно и передавать двоичные файлы. Но как быть, если файлы необходимо отправлять вместе с параметрами? Для возможности отправки файлов в этом случае используется HTTP заголовок ContentType:multipart/form-data. Следует заметить, что обычно таким способом передаются файлы через веб-браузеры. Т.е. когда на сайте вы выбираете файл и нажимаете кнопку "Загрузить", то файл передается способом описанным ниже. При таком способе сам файл также задается как переменная, т.е., например, файл передается через параметр file или image. Однако, мы не можем просто передать file=<Двоичные_Данные>. А вот как все таки передать файл мы и рассмотрим ниже.
Для возможности вместе с параметрами передавать и двоичные данные (файлы) необходимо сформировать HTTP заголовок Content-Type следующим образом:
Content-Type: multipart/form-data, boundary=<уникальные_данные>
где <уникальные_данные> - это любой набор цифр и/или символов, который будет служить для отделения значений друг от друга. Значение boundary должно быть уникальным в пределах пересылаемой информации, т.е. таких символов не должно встречаться в пересылаемых файлах и переменных.
Bounday можно сформировать, например, таким образом
Все данные отделяются друг от друга разделителем boundary. Начинать разделитель нужно с "--":
В конце данных нужно закрыть разделитель, добавили в конце разделителя "--", т.е. вид будет "--<boundary>--".
Итак, например, нам нужно передать на веб-сервер текстовый файл через параметр "text", его описание через параметр "desc" и id пользователя через параметр "uid", для которого будет загружен наш файл.
Предположим, что файл содержит следующий текст: Мороз и солнце; день чудесный!
Еще ты дремлешь, друг прелестный -
Пора, красавица, проснись:
Открой сомкнуты негой взоры
Навстречу северной Авроры,
Звездою севера явись!
Описание должно содержать "Стих А.С. Пушкина", а id пользователя равно "0123456". Тогда файл должен быть сформирован следующим образом (для упрощения предположим, что bounday мы уже сформировали и он равен "ccf8111910")
А теперь перейдем непосредственно к 1С. Пусть у нас будет форма с реквизитами "Пользователь", "Описание" и "ИмяФайла". Реализуем отправку данных, описанным выше способом
Передача текстовых файлов таким способом проблем не вызывает. Сложнее дело обстоит с файлами, содержащими двоичные данные (изображения, архивы и т.п.). Все дело в том, что в 1С просто нет методов для чтение двоичных файлов в строку. Если мы делаем обмен со своим сайтом, которые сами и разрабатывали, то можно просто преобразовать файл в строку Base64 при помощи процедуры Base64Строка(), а на стороне сервера преобразовать строку Base64 обратно.
А как же быть если мы загружаем файл на сторонний сервер, который принимает файл как есть без преобразование его в строку Base64(). В это случае можно пойти на хитрость. В 1С есть процедура ОбъединитьФайлы(), которая объединяет несколько файлов на диске в один результирующий файл
<ИменаЧастей> (обязательный). Тип - Массив. Массив имен частей файлов, которые
требуется объединить. Объединение будет происходить в порядке, в котором заданы
имена файлов в массиве.
<ИмяРезультирующегоФайла> (обязательный). Тип - Строка. Имя файла, который будет
создан в результате объединения файлов.
Т.е. мы можем сформировать текстовый файл с запросом, объединить его с файлом(-ами), которые необходимо передать на веб-сервер и передать уже файл, получившийся в результате объединения исходных файлов. Ниже демонстрируется процесс передачи двух zip архивов на сервер с дополнительными параметрами user_id и post_id.
Ну вот, вроде бы, и все, что я хотел рассказать о способах передачи файлов и данных на веб-сервер из 1С. Если что-то не понятно, что-то хотите уточнить или нашли ошибки - пишите в комментариях.
Автор: Павел
ВНИМАНИЕ! При использовании кодов описанных ниже, уберите символ _
Давайте рассмотрим на примерах как это делается! =) Мне известно 2 способа:
1. Путем замены шаблонного текста в макете Wordа.
2. Путем вставки текста с помощью закладок в Wordе,
В первом случае сразу скажу, что длина строки передаваемая в функцию замены, довольно небольшая 255 символов, да и расстановка шаблонных выражений в макете Word занимает довольно много времени. Через процедуру Content.Find.Execute.
Во втором случае длина, насколько мне известно неограниченна, также воськаться с закладками намного быстрее и удобнее, чем расставлять шаблонный текст. Используя Bookmarks().S_elect(). Поэтому давайте на коде рассмотрим второй пример.
И так, для начала необходимо добавить Word макет к документу. Добавляем макет с помощью конструктора макетов указав Active document и выбрав соответствующий макет.
Называем его Акт. Открываем макет в 1Ске, ставим курсор в нужном месте, переходим в меню Вставка закладка нажимаем добавить закладку к примеру у меня это НарушенияТекст
Теперь кидаем на форму документа кнопку Сформировать и по нажатию на нее пишем код который открывает наш макет Word ищем закладку по имени и вставляет туда текст:
Это пример вывода множества строчек из табличной части одной строкой, если нужно просто выгрузить какой-то реквизит то можно пропустить часть 2 и перейти к части 3.
Для выгрузки табличной части в форме таблицы можно использовать функцию автоформата, примеру код выгрузки табличной части документа Предписание:
Ну вот и все =) Автор: saylolpls
Еще способ Active document
В Конфигураторе Макеты - правый клик - Добавить
Тип макета: Active document
Создать новый - Документ Microsoft Word
Меню Вставка - Поле - Автоматизация - DocVariable
Написать имя поля в графе "Новое имя:" ДатаПриказа
В модуле формы документа создаем кнопку, и в ее обработчике пишем:
2) добавляем не поле, а Закладку
Меню Вставка - Закладка и далее указываем ее имя ("ИмяЗакл")
Двумерные штрих-коды – символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Такой код считывается с помощью специального сканера и позволяет быстро и безошибочно считывать информацию с документов. Это сделано с целью повышения эффективности ввода данных с бумажных носителей, то есть для быстрого считывания бухгалтерской и налоговой отчетности, подготовленной на машиночитаемых бланках с нанесением двухмерного штрих-кода символики PDF417.
Для печати машиночитаемых форм налоговых деклараций с двухмерным штрих-кодом PDF417 необходимо, чтобы на компьютере пользователя был установлен единый модуль печати машиночитаемых бланков и шаблоны машиночитаемых бланков.
Поддержка технологии формирования машиночитаемых бланков с двухмерным штрих-кодом включена в комплект форм регламентированной отчетности 1С. Скачать последнюю версию модуля двухмерный штрих-код PDF417 можно на сайте ФГУП "ГНИВЦ ФНС России" по ссылке http://www.gnivc.ru/inf_provision/form_templates/
После загрузки установите модуль:
Теперь приступаем к печати необходимого документа.
Проделаем это на примере бухгалтерского баланса. Заходим в меню Отчеты, Регламентированные отчеты, выбираем бухгалтерский баланс. После заполнения баланса переходим к печати, нам необходимо выбрать из двух предлагаемых вариантов первый: «Печатать сразу бланк формы с двухмерным штрихкодом PDF417».
Если выбрать "Показать бланк формы с двухмерным штрихкодом PDF417", то после выполнения необходимых подготовительных процедур на экране откроется форма предварительного просмотра, в которой предусмотрены возможности для просмотра сформированных отчетов и их непосредственного вывода на печать. Вот так будет выглядеть баланс с двухмерным штрих-кодом:
Для корректной обработки подготовленной печатной формы в налоговом органе, необходимо соблюдать некоторые требования к печати:
- Документ должен печататься только с одной стороны листа, не допускается печать сразу двух страниц на одном листе.
- Следует обратить внимание на качество печати. Считывание информации производится специальным сканером и для правильного распознавания им информации печать должна быть четкой и контрастной. Пятна, полосы и размытости от принтера, а также дефекты бумаги в зоне штрих-кода могут привести к неправильному считыванию. В данном случае нет гарантии, что до приемки дойдет та информация, которую Вы отправили, несмотря на правильность составления, выгрузки и шифровки.
- Изменение геометрических размеров печатаемых форм недопустимо.
- Листы отчетности в виде машиночитаемых форм не надо скреплять степлером или подшивать в скоросшиватель - это может повредить блок двухмерного штрихкода. Подготовленную печатную форму в виде машиночитаемой формы необходимо подписать и поставить печать.
Подготовленную таким образом отчетность необходимо представить в вашу налоговую инспекцию так же, как вы обычно это делаете.
Второй экземпляр можно подготовить для того, чтобы инспектор поставил на титульном листе отметку о приеме. Однако мы рекомендуем оставить себе "обычную" печатную форму отчетности - в том виде, как она утверждена Минфином России, без двухмерного штрих-кода.
Программист 1C – это человек, преданный своему делу, имеющий обширную теоретическую базу и обладающий практическими знаниями по использованию программ 1С.
Описание профессии:
1С-программист занимается разработкой программы 1С: Предприятие, предназначенной для ведения бухгалтерии и делопроизводства на предприятиях малого и среднего бизнеса.
Виды деятельности:
* настройка и поддержка программного обеспечения 1С разных версий;
* произведение администрирования типовых конфигураций на базе 1С;
* произведение разработки и администрирования нетиповых конфигураций 1С;
* тестирование на предмет ошибок, ликвидация недочетов
Места работы:
* фирмы, специализирующиеся на разработке и установке программного обеспечения 1С;
* организации, предусматиривающие штатную единицу 1С-программиста
Профессиональные навыки:
* наличие технического образования;
* понимание системы бухгалтерского учета, основ и принципов ведения бухгалтерии;
* умение настраивать и перерабатывать 1С под требования ведения учета в конкретной организации
Дополнительные особенности:
Обучиться 1С-программированию можно на специальных курсах, имея при этом базовое техническое образование. Желающим работать 1С-программистом необходимо иметь в виду, что заниматься данным программным обеспечением они смогут только на территории Российской Федерации, т.к. за рубежом действует иная система бухгалтерского учета. Программисты 1С могут сделать карьеру, заняв должности специалист 1С или администратора 1С.
Ошибка:
Бухгалтерский баланс:
Для данного периода на вкладке Сопроводительные файлы для выгрузки не указан файл Пояснительной записки
Отсутствует файл выгрузки.
Разъяснение:
Это требования законодательства, которые фирмой 1С и реализованы.Те организации, которые обязаны сдавать Бух.отчетность обязаны в составе отчетности сдавать и Пояснительную записку. Приказ №66н.
При формировании баланса надо заполнить и сохранить с 1 по 4 формы (2 - отчет о прибылях и убытках, 3 - отчет об изменении капитала, 4 -отчет о движении ден.средств). Это обязательное условие буквы закона о сдаче баланса за 2011 год. Подчеркиваю - обязательно сохранить и только после этого пробовать выгружать или печатать. Если не получится - заполните еще и 5 и 6-ю формы и сохраните их. В качестве пояснительной записки создайте пустой EXEL-файл и укажите его. Далее должно все получиться.
Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001–001–998
Контрольное число Страхового номера рассчитывается следующим образом:
• каждая цифра Страхового номера умножается на номер своей позиции (позиции отсчитываются с конца)
• полученные произведения суммируются
• сумма делится на 101
• последние две цифры остатка от деления является Контрольным числом.
Например: Указан страховой номер 112–233–445 95
Проверяем правильность контрольного числа:
цифры номера 1 1 2 2 3 3 4 4 5
номер позиции 9 8 7 6 5 4 3 2 1
1х9+1х8+2х7+2х6+3х5+3х4+4х3+4х2+5х1=95
95 / !101! =95
Контрольное число=95 – указано верно
Некоторые частные случаи:
99 / !101! =99
100 / !101! =00
101 / !101! =00
102 / !101! =01
Когда требуется более тонкая настройка доступа, на помощь приходит механизм RLS - Record Level Security.
Конфигурации системы «1С:Предприятие» 8 изначально позиционировалась как программа для многофирменного учета, и один из первых возникающих вопросов – как бы сделать так, что бы пользователь видел только те данные, которые ему положено видеть, и никакие другие? Конечно, есть роли, с помощью которых можно разрешить или запретить то или иное действие над объектом конфигурации, есть интерфейсы, позволяющие минимизировать пункты меню. Но как быть в случае, когда к одному и тому же объекту конфигурации нужно организовать «интеллектуальный» доступ, скрывающий только определенный записи? Ярким примером служит справочник «Организации»: учет в базе ведется по нескольким фирмам, справочник физически один, документы по фирмам ведутся одни и те же. Понятно, что в этом случае в назначенных ролях пользователя нельзя просто убрать права на чтение и просмотр, нужна более детальная настройка - RLS.
Ограничения RLS можно задавать для следующих действий над объектами базы данных:
- Чтение – получение записей из таблицы базы данных;
- Добавление – добавление новых записей без изменения существующих;
- Изменение – изменение существующих записей;
- Удаление – удаление некоторых записей без внесения изменений в другие.
Ограничение доступа задаётся подмножеству, определяемому условием выборки, заданному с помощью языка запросов. Если результат выполнения запроса ИСТИНА, то доступ на определенное действие будет предоставлен, в противном случае доступ будет запрещен.
Пример запроса:
В качестве переменных в запросах RLS используются специальные объекты конфигурации – параметры сеанса. Кроме привычных типов объектов, тип параметра может быть такжеNULL, УникальныйИдентификатор, ФиксированныйМассив, ВидДвиженияНакопления и др. Особо хочется отметить тип ХранилищеЗначений, позволяющий хранить разнородные данные в одном параметре (например, ОбщиеЗначения). Значения параметров сеанса обычно задается в процедуре ПриНачалеРаботыСистемы.
Так, при выводе списка номенклатуры можно отображать только некоторые группы справочника, при выборе контрагента в документ можно показывать не всех контрагентов, а только тех, к которым позволено работать пользователю, при формировании отчета скрывать данные по определенному подразделению. Вариантов применения RLS масса, нужды бизнеса иногда диктуют порой умопомрачительные требования, например разграничения доступа к проектам и спецификациям.
Заданные ограниченияRLS добавляются системой к каждому запросу, каждому действию с базой данных. Поэтому необходимо помнить, что злоупотребление механизмом RLS чревато снижением быстродействия системы.
В типовых конфигурациях возможность настройки прав доступа на уровне записей организована только для групп пользователей. Т.е. каждый пользователь системы включается в одну или несколько групп, для которых настраивается правило доступа к объекту или множеству элементов. Чем в большее количество групп входит пользователь, тем ниже будет производительность системы.
Платформа 1С в явном виде не предоставляет возможность отладки работы механизма RLS, но тем ни менее сделать это вполне реально. Для этого можно воспользоваться универсальной консолью отчетов (версия не ниже 2.6.9.2), на закладке «Данные» у которой есть функция «Выполнить от имени». Обработка создаст COM-соединение с помощью указанного имени пользователя и пароля, и выдаст результат выполнения запроса в консоль.
Используя имеющиеся в конфигурациях шаблоны ограничений, или создавая свой собственный запрос с помощью конструктора ограничений доступа к данным, можно настроить работу базы данных до мельчайших деталей, расписав кому что видно, доступно и дозволено. Единственным минусом является снижение производительности базы данных, но, как говорится, всё хорошее должно быть в меру.
Справочник «Внешние обработки, печатные формы, обработки по заполнению табличных частей» содержит список произвольных обработок, произвольных отчетов, дополнительных печатных форм, обработок для заполнения ТЧ объектов, обработок, подключаемых к отчетам.
Общее описание: Произвольная обработка (произвольный отчет)
Для произвольных обработок необходимо указывать только внешнюю обработку, которая находится на диске, для ее загрузки в реквизит элемента справочника. Так же для произвольных обработок необходимо иметь возможность назначать права доступа для их использования.
Обработка для заполнения ТЧ объектов
Для обработок заполнения ТЧ необходимо указывать внешнюю обработку, список объектов и их ТЧ, для которых необходимо использовать данную обработку.
Внешняя печатная форма
Для подключаемых внешних печатных форм необходимо указывать:
внешнюю обработку;
при необходимости можно указать список дополнительных параметров, которые будут передаваться внешней обработке;
список объектов, для которых данная печатная форма используется;
для каждого объекта несколько отборов, при выполнении которых печатная форма становится доступной для использования с данным объектом;
для каждого объекта свою отдельную печатную форму, но в списках печатных форм в объектах будет всегда появляться одинаковый пункт подменю;
для каждого объекта встроенную печатную форму, которая будет заменена указанной внешней.
Корректно зарегистрированная печатная форма будет выводиться в общем списке печатных форм объекта, вызываемом по кнопке «Печать». Если подключаемая печатная форма заменяет стандартную, то она заменяется и показывается в списке стандартных печатных форм.
Внешняя обработка, подключаемая к отчету
К каждому отчету (на базе универсального отчета) можно подключать произвольное количество обработок. Перечень обработок которые будут фактически подключены к отчету определяется правами доступа пользователей к внешним обработкам.
Для каждой обработки, подключенной к отчету можно указать режим её запуска:
Запускать автоматически перед началом построения отчета
Обработка будет запущена после нажатия на кнопку «Сформировать» в отчете перед выполнением запроса к данным. Результат выполнения обработки может быть выведен в форму отчета, если обработка завершается с указанием прервать построение отчета. Иначе форма отчета очистится после выполнения обработки. Также в зависимости от результата работы обработки построение отчета может быть прервано. Пользователю может быть выдано сообщение о причине.
Например:
a. не готовы исходные данные,
b. формирование отчета запрещено в этот период времени, этим пользователем и т.п.
Запускать автоматически после построения отчета
Обработка будет запущена, после того как нажата кнопка «Сформировать» и результаты отчета выведены в поле табличного документа. Этот режим предназначен для дополнительной обработки результата полученного в отчете.
Запускать вручную
Обработку можно будет запускать вручную, через меню «Действия» отчета
Обработки, для которых задан режим запуска «Вручную» автоматически размещаться в меню «Действия» отчета.
Требования к подключению внешних обработок(для программиста):
Произвольная обработка
Любая внешняя обработка с определенной основной формой. Произвольный отчет
Любой внешний отчет с определенной основной формой. Обработка для заполнения ТЧ объектов
Внешняя обработка, содержащая:
Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа в виде структуры.
В модуле экспортную процедуру: Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта)
где: Объект - ДокументОбъект, СправочникОбъект - откуда был произведен вызов процедуры заполнения внешней обработки; ИмяТабличнойЧасти – Строка. Имя табличной части, для которой вызвана обработка; ТабличноеПолеОбъекта – Элемент формы: Табличное поле. Табличное поле формы, для которого вызвана обработка.
Также обработка может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» и состоящий из 2-х колонок («полное имя метаданного» и «имя табличной части»).
Пример: Внешняя обработка «Заполнить по остаткам» предназначена для заполнения табличной части «Товары» документа «Перемещение товаров» типовой конфигурации фирмы 1С «Бухгалтерия предприятия».Скачивать файлы может только зарегистрированный пользователь! Внешняя печатная форма
Внешняя обработка, содержащая:
Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа в виде структуры. Подробнее об этом!
Реквизит «СсылкаНаОбъект», в который при вызове будет передана ссылка на объект, для которого необходимо выполнить печать.
Функция «Печать()» - без параметров, возвращающая табличный документ.
Также обработка может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» и состоящий из 2-х колонок («полное имя метаданного» и «имя табличной части»).
Пример: Внешняя обработка «Универсальная внешняя печатная форма» - пример создания подключаемой внешней печатной формы для типовых конфигураций фирмы 1С.Скачивать файлы может только зарегистрированный пользователь! Внешняя обработка, подключаемая к отчету
Внешняя обработка, содержащая:
В модуле экспортную процедуру: Инициализировать()
Обязательный реквизит «ДополнительныеПараметры» - произвольного типа. При создании обработки инициализируется значением типа Структура, содержащим: Отчет – ОтчетОбъект, из которого осуществляется вызов внешней обработки. ТабличныйДокумент - ТабличныйДокумент, в который осуществляется вывод отчета. Отказ - флаг, определяющий необходимость дальнейшего построения отчета. Как подключить внешнюю печатную форму 1С?
Для использования Внешней печатной формы, Вам нужно запустить Вашу 1С в режиме Предприятие и в меню "Сервис" - "Внешние печатные формы" просто добавить ее в список! Более подробно об этом читайтездесь!
Как добавить дополнительную колонку в табличном поле?
Добавляете колонку, а все вычисления реализуются с помощью события ПриВыводеСтроки табличного поля:
С помощью этого события можно выводить не только текст, но также флажки и картинки, например: Картинка:
Флажки:
Еще можно менять цвет фона и текста, шрифт и другие характеристики оформления:
Можно также управлять доступностью отдельных строк и ячеек табличного поля:
Обычно колонка должна быть рассчитываемой, или зависимой от данных, поэтому нужно задействовать второй параметр ДанныеСтроки. Этот механизм можно использовать для отображения остатков товаров в форме подбора, текущих цен, долга контрагента, другой информации по строкам.
Но здесь нужно быть осторожным! Событие ПриВыводеСтроки вызывается довольно часто при перерисовке табличного поля. Поэтому процедура должна отрабатывать довольно быстро, чтобы не тормозить вывод списка. Если в ней происходит обращение к базе данных, то вывод может резко замедлиться.
Если начались тормоза, то рекомендуется сделать следующее:
1. Кеширование результата запроса в переменной модуля формы (таблица значений или массив, еще можно использовать соответствие, которое индексируется для примитивных типов данных, например, код товара или артикул)
2. При отключенной колонке (видимость) запрос к базе НЕ должен выполняться.
По умолчанию колонку держать выключенной, включение только по кнопке в форме или при личных настройках определенного пользователя.
3. Лучше выполнять один большой запрос на несколько товаров, чем несколько маленьких запросов на один товар.
4. Список товаров нужно передавать как ПАРАМЕТР виртуальной таблицы Остатки, а не как параметр условия ГДЕ.
5. При повышенных требованиях к скорости отображения списка и большом количестве пользователей можно завести регистр сведений, хранящий актуальные остатки. Для поддержки его актуальности можно создать последовательность.
6. Еще вариант через обработчик - при ПолученииДанных (вроде так называется)... Там сразу передается массив ОформленияСтрок - в нем все строки сразу и вызывается он реже, чем при выводе строки...
7. Завести в табличной части реквизит, куда при открытии формы и по мере надобности помещать остатки, это значительно ускорит вывод остатков, правда будет не лучшим образом влиять на флаг Модифицированность.