Сообщения

Сообщения за 2015

Настройка системы для формирования документов Word или Excel на стороне сервера

Изображение
Допустим, необходимо формировать документ офисного пакета Microsoft Office на стороне сервера, то есть от имени сервера 1С, но не всегда установка "из коробки" позволяет выполнять данную операцию. так как обычно происходит исключительная ошибка создания COM-объекта. В этом случае требуется более тонкая настройка системы в целом. Настройка заключается в установке прав доступа сервера 1С к DCOM-приложению и папке Desktop. Рассмотрим процесс настройки. Откройте оснастку "Службы компонентов", для этого в командной строке выполните команду dcomcnfg (или comexp.msc /32 для 64-разрядной Windows, см. рисунок 1). Рисунок 1. Запуск оснастки "Службы компонентов" В узле Настройка DCOM найдите элемент Microsoft Excel Application(если хотите выполнять формирование документов Excel) или элемент Документ Microsoft Office Word 97 - 2003(если хотите выполнять формирование документов Word), нажмите правой кнопкой мыши и выберите пункт Свойства (см. рисунок 2). Ри

Актуальные часовые пояса на устаревшей версии платформы 1С

Изображение
Изменения в часовых поясах страны напрямую затрагивают информационную систему, которая функционирует в нескольких часовых поясах. Обычно такие масштабы использования ИС используются в крупных организациях. С проблемой часовых поясов могут столкнуть и мелкие организации, которые, допустим, производят обмен данным между собой с использованием универсального времени (UTC). Платформа 1С имеет ряд функций для работы с универсальным временем, которые используют информацию о часовых поясах из сторонней библиотеки ICU. Данная библиотека модифицирована фирмой 1С под свои нужды, а база часовых поясов вшита внутрь библиотеки ICU. Обновить информацию о часовых поясах можно двумя способами: Обновить платформу; Указать путь к актуальной базе часовых поясов. Первый способ актуализации информации о часовых поясах нарушает золотое правило системного администратора "Работает - не лезь", так как обновление платформы может повлечь за собой другие проблемы, отнять уйму времени и сил! Вт

Неправильный параметр набора ключей при создании ЭП на стороне сервера

Изображение
Создание электронной подписи на платформе 1С с помощью СКЗИ КриптоПро CSP можно выполнять как на стороне сервера, так и на стороне клиента. В обоих случаях может появиться довольно неприятная ошибка: Неправильный параметр набора ключей. Неприятна данная ошибка тем, что у неё множество причин, и что бы её исправить, нужно провести целый комплекс мероприятий. Постановка задачи Допустим, имеется информационная база, с которой платформа 1С работает в клиент-серверном варианте. Создание электронной подписи будем выполнять на стороне сервера, в этом случае рекомендуется использовать сертификаты и ключи, находящиеся в хранилище локального компьютера, так как они будут доступны любому пользователю Windows. А так же имеется установленный сертификат в хранилище локального компьютера в разделе Личное (см. рисунок 1) с привязкой к закрытому ключу (см. рисунок 2). Рисунок 1. Сертификат локального хранилища

СКД. Программная компоновка результата.

Рассмотрим программное формирование результата отчета на примере события ПриКомпоновкеРезультата, которое вызывается по-умолчанию при формировании отчета или при выполнении отчета с помощью метода СкомпоноватьРезультат(). // 1. Установим признак отказа от выполнения стандартной обработки события. СтандартнаяОбработка = Ложь; // 2. Получим макет, в котором хранится "шапка" и "подвал" отчета. МакетДопОформление = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_ДопОформлениеСКД"); // 3. Выведем в табличный документ шапку отчета. ШапкаОтчета = МакетДопОформление.ПолучитьОбласть("ШапкаОтчета"); ДокументРезультат.Вывести(ШапкаОтчета); // 4. Получим копию настроек компоновки данных. НастройкиОтчета = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(); // 5. Установим значение параметра компоновки данных ОтчетнаяДата (Вкладка "Параметры" схемы компоновки данных). ПараметрОтчетнаяДата = Новый ПараметрКомпоновкиДанных("ОтчетнаяДата");

Сжатие (шринк) журнала транзакций в MS SQL

Изображение
Краткое описание моделей восстановления MS SQL Довольно популярная ошибка СУБД в кругах 1Сников "Журнал транзакций для базы данных заполнен", если информационная база развернута в клиент-серверном варианте с использованием MS SQL и все настройки были оставлены по-умолчанию (см. рисунок 1). Рисунок 1. Ошибка переполнения журнала транзакций Конечно, MS SQL умеет автоматически усекать журнал транзакций (физически размер файла журнала транзакций не уменьшается), но бывают исключения, при которых происходит задержка усечения (начинается физическое увеличение размера файла журнала транзакций). Для борьбы с переполнением журнала транзакций предусмотрены следующие вариант настройки СУБД: создание резервной копии журнала; освобождение места на диске, чтобы журнал мог автоматически расти; перемещение файла журнала на диск с достаточным объемом свободного места; увеличение размера файла журнала; добавление файла журнала на другой диск; завершение или уничтожение длитель

СКД. Вывод информации табличной части в одну ячейку.

Изображение
Использование нескольких схем компоновки данных в одном отчете Выгрузка отчета в таблицу/дерево значений 1) Использование функции СКД - СоединитьСтроки(). У данного способа, как мне кажется, есть минус, но он работает, но минус большой. Рассмотрим на примере: имеется в конфигурации документ "Поступление товара" с табличной частью "Товары", необходимо вывести в отчет документы и наименования поступившего товара для каждого документа. Создадим отчет, добавим основную схему компоновки данных, в СКД добавим набор данных типа "запрос" и сформируем простенький запрос (см. рисунок 1). Рисунок 1. Запрос набора данных

Рекомендации по настройке и использованию веб-браузера Internet Explorer

Изображение
Рекомендации по настройке и использованию веб-браузера корпорации добра (Google Chrome) Рекомендации по настройке и использованию веб-браузера Mozilla Firefox Настройки использования веб-браузера Для использования веб-браузера необходимо выполнить настройку свойств обозревателя. Для этого в меню Сервис (Tools) выберите пункт Свойства обозревателя (Internet Options) и выполните настройки: 1) Разрешите выполнение JavaScript скриптов. на вкладке Безопасность (Security) для зоны Internet нажмите кнопку Другой (Custom level);  в разделе Сценарии (Scripting) для параметра Активные сценарии (Active scripting) установите Разрешить (Enable); в разделе Прочие (Miscellaneous) для параметра Отображение разнородного содержимого (Display mixed content) установить значение Включить (Enable) (только для Microsoft Internet Explorer версии 8); в разделе Загрузка (Downloads) для параметра Автоматические запросы на загрузку файлов (Automatic prompting for file downloads) установить значение

Использование маски на примере плана счетов

Изображение
Одним из важнейших свойств объекта метаданных "План счетов" является   Маска . Данное свойство предназначено для ограничения вводимых пользователем символов в коде элемента (т.е. в счете), а так же для задания иерархической структуры плана счетов. Рисунок 1. Ввод кода для предопределенного счета Что бы ограничить ввод некоторых символов и задать формат для кода счета, необходимо составить маску из специальных символов: ! - любой введенный символ преобразуется в верхний регистр;  9 - допустимо ввести произвольный символ цифры;  # - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;  N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);  U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;  X (латинского алфавита) - допустимо ввести произвольный символ;  ^ - недопустимо вводить этот символ интерактивно пользователем, он может уст

Передача двоичных данных с помощью веб-сервиса

Изображение
Объект метаданных "Веб-сервис" предназначен для обмена данными посредством веб-технологий, а если быть точнее - по протоколу HTTP. Как же осуществляется передача двоичных данных в мире веб-разработки? Для этого используется кодирование двоичных данных под названием base64 (64 — это число символов в алфавите кодирования, из которого формируется конечный буквенно-цифровой текст на основе латинского алфавита). Закодированные двоичные данные выглядят примерно так: TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0 Платформа 1С в своем арсенале имеет имеет парочку функций, которые умеют кодировать двоичные данные в base64: Base64Строка - имеет один входящий параметр типа ДвоичныеДанные, возвращает строку, закодированную по алгоритму base64. XMLСтрока - так же имеет один входящий параметр, который может принимать значение типа ДвоичныеДанные и возвращать строку в формате base64, следует использовать для создания XML. Допустим, имеется веб-сервис,

Фиксируйся транзакция большая и маленькая!

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

Рекомендации по настройке и использованию веб-браузера корпорации добра (Google Chrome)

Изображение
  Рекомендации по настройке и использованию веб-браузера Mozilla Firefox Рекомендации по настройке и использованию веб-браузера Internet Explorer Для использования веб-браузера необходимо выполнить настройку свойств обозревателя. Для этого откройте меню Настройка и управление Google Chrome (Customize and control Google Chrome), выберите пункт Настройки (Settings). Либо наберите в адресной строке адрес chrome://settings/. Рисунок 1. Настройки браузера Далее нажмите ссылку Показать дополнительные настройки (Show advanced settings). В группе Личные данные нажмите кнопку Настройки контента или введите адрес chrome://settings/content. Рисунок 2. Настройки контента Выполните следующие настройки:

Передача таблицы значений с сервера на клиент

Изображение
Отличия функций РеквизитФормыВЗначение и ДанныеФормыВЗначение После разделения выполнения программного кода на два контекста (клиент и сервер), у разработчиков появилось множество проблем, при переводе конфигурации с обычных форм на управляемые. Одна из них - это отсутствие возможности передачи объекта типа ТаблицаЗначений с сервера на клиент. Объект этого типа имеет много полезных методов, которые упрощают жизнь разработчику, поэтому свою жизнь без таблицы значений я не представляю возможной. Вариантов решения два: конвертировать таблицу значений в другой тип (например, в массив структур), либо динамически создавать реквизит формы типа ТаблицаЗначений (на самом деле тип ДанныеФормыКоллекция) и заполнить его данными. Вариант №1 Здесь все просто, обходим в цикле строки таблицы значений, данные каждой строки вставляем в структуру, а структуру добавляем в массив. &НаСервере Функция ПолучитьТЗКакМассивСтруктур() МояТаблицаЗначений = СоздатьТаблицуЗначений(); МассивС

Получение старого значения реквизита в момент записи объекта или OLD

Реляционные системы управления базами данных, такие как InterBase или FireBird, в своих триггерах поддерживают контекстные переменный NEW и OLD. Контекстная переменная NEW содержит новые значения записи, а вот переменная OLD содержит старые значения записи, следовательно, при обновлении записи (допустим BEFORE UPDATE) разработчик имеет доступ к записи до её обновления и после. Стоит заметить что переменные OLD и NEW доступны не во всех типах триггера. Платформа 1С так же позволяет разработчику иметь доступ к старым значениям реквизита (до обновления) и одновременно к новым значениям реквизита (после обновления), но при одном условии, разработчик должен использовать события перед записью ! Допустим, у нас имеется справочник Договоры, у которого имеется реквизит ДатаПодписания. Что бы сравнить старое и новое значение реквизита, воспользуемся событием модуля объекта ПередЗаписью. Далее два варианта развития события. 1. Выполнить явный запрос Запрос = Новый Запрос; Запрос.Текст

Рекомендации по настройке и использованию веб-браузера Mozilla Firefox

Рекомендации по настройке и использованию веб-браузера корпорации добра (Google Chrome) Рекомендации по настройке и использованию веб-браузера Internet Explorer Особенности использования Все операции с файловой системой (получение файла с сервера, передача файла на сервер, удаление файла и т.п.) выполняются строго интерактивно. Если выполнение действия не требует взаимодействия с пользователем (напрмер выбора файла), то выдается диалог-предупреждение, требующий от пользователя подтверждения. Настройки использования веб-браузера Для подключения к информационным базам 1С:Предприятия 8 с помощью Mozilla Firefox нужно выполнить следующие настройки: Откройте браузер, в меню Инструменты (Tools) выберите пункт Настройки (Options); В открывшемся окне перейдите в раздел Содержимое (Content): - Снимите флажок Блокировать всплывающие окна (Block pop-up windows); - Установите флажок Использовать JavaScript (Enable JavaScript). Перейдите в раздел Приватность (Privacy) установите сл

Выполнение POST-запроса по протоколу HTTPS на платформе 8.2 на примере Yandex.API

Изображение
Выполнение POST-запроса на примере Yandex.API Выполнение GET-запроса на примере Яндекс.API Теперь сервис Яндекс.Геокодер работает по протоколу HTTPS (расширенная версия протокола HTTP, который поддерживает шифрование). Вызов принят, 1С вызываю тебя! Танцы с бубном вокруг файла cacert.pem Что бы с помощью платформы 1С выполнить HTTPS-запрос методом POST, необходимо в файл cacert.pem добавить информацию о корневом сертификате сервиса, на который выполняется запрос, иначе запрос будет завершаться ошибкой: Peer certificate cannot be authenticated with known CA certificates Если же платформа 1С содержит информацию о корневом сертификате, то ничего настраивать не нужно, все будет успешно выполняться. Добавление информации о корневом сертификате Важно! Все сертификаты из цепочки необходимо добавлять в файл cacert.pem 1. Скачать подходящий дистрибутив с сайта  Win32OpenSSL , например, для 64 разрядной ОС Win64OpenSSL_light последней версии.

Выгрузка отчета в таблицу/дерево значений

Использование нескольких схем компоновки данных в одном отчете СКД. Вывод информации табличной части в одну ячейку. Недавно появилась задачка, необходимо создать отчет, который требуется выгружать в Excel. Написал запрос, создал схему компоновки данных и отчет готов, результат компоновки выводится в табличный документ. Приступил к реализации вывода отчетных данных в Excel и призадумался, а как же это лучше сделать? Оказывается, результат компоновки данных можно выводить в таблицу значений или дерево значений для последующей программной обработки. Для этого предназначен объект языка программирования  ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений . У этого объекта имеется метод УстановитьОбъект() , который является аналогом метода УстановитьДокумент() объекта ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент . Привожу пример вывода результата компоновки в таблицу значений: Функция СкомпоноватьРезультатВКоллекциюЗначений() Экспорт тзКомпоновщикМ

Загадочное свойство БлокироватьДляИзменения

Что это за свойство? Это свойство позволяет устанавливать режим, при котором в процессе записи набора будет установлена управляемая блокировка для всех комбинаций измерений в соответствии с записями набора записей. Для чего используется? Это свойство актуально для регистров, у которых разрешено разделение итогов ( Разрешить разделение итогов равно Истина). поэтому данное свойство имеет смысл использовать, если проверка итогов регистра выполняется после записи и заблокировать нужно именно те комбинации, по которым записываются записи. На что стоит обратить внимание? Блокировка итогов регистра по набору значений измерений выполняется в момент записи набора записей. Контроль итогов регистра можно выполнять без применений опции "ДЛЯ ИЗМЕНЕНИЙ" (в случае использования автоматического режима) или явной установки управляемой блокировки (в случае использования управляемого режима). Если записать пустой набор данных, то блокировка итогов выполняется по "очищаем

Задание типа значения для реквизита с типом СписокЗначений в управляемых формах

Изображение
В управляемых формах невозможно задать тип значения для реквизита, который имеет тип СписокЗначений , хотя в обычных формах такая возможность есть. Если реквизит с типом СписокЗначений является реквизитом формы, то здесь особых сложностей нету, достаточно в обработчике события формы ПриСозданииНаСервере написать код по установке типа для значения списка: ТипыСписка = "Строка"; ДоступныеТипы = Новый ОписаниеТипов(ТипыСписка); ЭтаФорма.РеквизитСписокЗначений.ТипЗначения = ДоступныеТипы; Как видно из примера, тип значения устанавливается через свойство списка значений ТипЗначения , которое имеет тип ОписаниеТипов . Другое дело, когда форма содержит таблицу значений, у которой имеется реквизит с типом СписокЗначений . В такой ситуации через обработчики событий формы к этому реквизиту не достучаться, поэтому нужно использовать обработчики событий элемента формы, связанного с данным реквизитом. 1. Реквизит ТЧ с типом СписокЗначений Для этого напишем код по установк

Использование нескольких схем компоновки данных в одном отчете

Изображение
Выгрузка отчета в таблицу/дерево значений СКД. Вывод информации табличной части в одну ячейку. Отчеты используются для получения сводной информации на основании данных, введенных в информационной системе. Обычно отчет содержит: алгоритмы, при помощи которых получается и обрабатывается информация; формы, при помощи которых организуется интерфейс для ввода параметров алгоритмов и представления результатов их работы; макеты, при помощи которых выводится результат выполнения алгоритма в табличный документ. Примером применения отчетов может быть получение сводных данных о хозяйственной деятельности в необходимых для анализа разрезах. Что бы не плодить отчеты, которые схожи по смыслу, в дереве конфигурации, платформа 1С позволяет в одном отчете использовать несколько схем компоновки данных, и в зависимости от условий использовать ту или иную СКД для получения отчетной информации. Рассмотрим пример реализации использования нескольких СКД в одном отчете. Создадим внешний отчет. В

Убираем авторизацию пользователя у веб-сервиса

Изображение
Механизм Web-сервисов позволяет использовать 1С:Предприятие 8 как набор сервисов в сложных распределенных и гетерогенных системах, а также позволяет интегрировать 1С:Предприятие 8 с другими промышленными системами использованием сервисно-ориентированной архитектуры. Публикация веб-сервисов выполняется через конфигуратор, для этого нужно открыть окно Публикация на веб-сервере , нажав Администрирование -> Публикация на веб-сервере... 1. Опубликованный веб-клиент и веб-сервисы Процесс публикации описывать не буду, для каждого случая он свой, но обычно достаточно выбрать веб-сервер, указать каталог публикации и нажать на кнопку Опубликовать . Послу публикации в указанном каталоге создастся файл default.vrd. Его содержимое будет примерно таким: <?xml version="1.0" encoding="UTF-8"?> <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.or

Отображение различных элементов формы в командной панели

Изображение
Все-таки, программист - это не только техническая профессия, но и творческая, так как зачастую приходится самому создавать дизайн форм. Недавно мне захотелось поместить поле переключателя в командную панель управляемой формы, но не все так просто... Элемент управления КоманднаяПанель предназначен для размещения в форме набора команд, с помощью которых производится управление информацией, размещенной в форме. Командная панель представляет собой древовидную структуру кнопок командной панели. Для примера, создайте внешнюю обработку, у обработки создайте управляемую форму. 1. Управляемая форма обработки Форма уже имеет стандартную командную панель, но в неё мы можем добавить только кнопки, вообще, командные панели могут содержать только элементы формы кнопки и подменю. Поэтому, в свойствах стандартной панели нужно снять галочку у свойства Автозаполнение . 2. Свойства командной панели

Описание объекта конфигурации "Общий модуль"

Изображение
Общие модули предназначены для содержания общих алгоритмов конфигурации, которые доступны из разных модулей конфигурации. В общих модулях отсутствует раздел определения переменных и раздел основной программы, то есть они должны содержать только процедуры и функции. Если используется клиент–серверный вариант работы системы 1С:Предприятие 8, то с помощью свойств Клиент (обычное приложение) , Клиент (управляемое приложение) и Сервер , а также указаний препроцессору разработчик может организовывать выполнение различных процедур и функций общих модулей в контексте сервера или в контексте клиента. 1. Пример общего модуля Описание свойств Если установлено свойство Клиент (обычное приложение) или Клиент (управляемое приложение) , то все процедуры и функции общего модуля могут использоваться в клиентском приложении. В контексте неглобального общего модуля с установленным свойством Клиент (обычное приложение) доступны экспортируемые переменные, процедуры и функции модуля обычного

Правила написания конфигураций. Как быстро придумать наименование.

Изображение
Что может быть самым сложным для программиста? Правильно, придумать имя для переменной! Что бы конфигурация была удобочитаемой, приведу некоторые стандарты, которые описывают правила именования объектов конфигурации, переменных, процедур, функций, элементов управления и т. д. Правила составления имен переменных Имена переменных или параметров следует образовывать от терминов предметной области. При составлении имени переменной нужно использовать только термины, используемые в документации к 1С:Предприятию или в методических материалах фирмы 1С. Из имени переменной должно быть понятно ее назначение и какую роль она выполняет. Имена следует составлять путем склеивания слов, удаляя пробелы между ними. Каждое отдельное слово в склеенном имени пишется с прописной буквы. Предлоги и местоимения из одной буквы также пишутся прописными буквами.  Пример правильного имени: работа с каталогом – РаботаСКаталогом ; количество пачек в коробке – КоличествоПачекВКоробке . Имена п

Увеличиваем свободное место локального диска под ОС Windows

Изображение
Загрузка установщика Windows 7 на материнской плате с поддержкой Skylake Часто так бывает, что во время разработки, магическим образом заканчивается свободное место на локальном диске C. Факторов, которые съедают локальный диск, множество, зачастую неграмотно установленное программное обеспечение. Вот один из способов увеличения свободного места без расширения объема локального диска. Перенос файла подкачки на другой локальный диск Открыть свойства системы и на вкладке Дополнительно нажать на кнопку Параметры быстродействия системы. 1. Свойства системы В параметрах быстродействия системы открыть вкладку Дополнительно и нажать на кнопку Изменить в разделе Виртуальная память.

Ошибка хитрого метода ПроверитьВывод() табличного документа

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

Шифрование строковых данных с помощью CAPICOM.EncryptedData

Изображение
Шифрование строковых данных. Менеджер криптографии. Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии. Шифрование строковых данных с помощью CAPICOM.EnvelopedData Шифрование с помощью объекта EncryptedData библиотеки CAPICOM является самым простым в реализации, так как в данном случае не требует сертификатов и всего что с ними связано в отличии от объекта EnvelopedData и объекта МенеджераКриптографии языка 1С. EncryptedData - объект, который предоставляет разработчику свойства и методы для шифрования/дешифрования некой информации с использованием секретного ключа. Этот объект поддерживает следующие симметричные алгоритмы: RC2, RC4, DES, 3DES. Общая схема симметричного шифрования: 1. Симметричное шифрование Методы объекта: Decrypt - выполняет дешифрование данных, используя секретный ключ; Encrypt - выполняет шифрование данных, с применением секретного ключа; SetSecret - устанавливает секретный ключ. Свойства объекта: Algorithm - алгоритм. и

Что такое оперативное, а что такое неоперативное проведение документов.

Изображение
Проведение документа - это процесс отражения данных документа в учете, то есть документ считается проведенным, если данный документ полностью обработан и принято решение, что данный документ должен участвовать в учете. Так же можно сказать, что проведенный документ отражает факт свершившейся хозяйственной операции. При разработке конфигураций на платформе 1С принято использовать концепцию оперативного и неоперативного проведения документов.Эта концепция подразумевает, что работа пользователей в информационной системе может производиться в двух принципиально разных режимах. То есть факт проведения документа и необходимость поддержания актуальной последовательности документов на временной оси событий порождают два различных способа проведения документов: оперативное и неоперативное. 1. Выбор режима проведения Оперативное проведение документов пользователями выполняется в режиме реального времени, то есть отображает изменения, факты, свершающиеся в настоящее время. Так же, данный

Понятие момента времени. МоментВремени.

Изображение
Для определения положения документа на временной оси используется реквизит документа Дата , он является стандартным реквизитом. 1. Стандартные реквизиты документа Дата содержит время с точностью до секунды. Это позволяет контролировать последовательность внесения документов в базу данных. 2. Расположение документов на оси времени Однако при большом объеме создаваемых документов может возникнуть ситуация, когда несколько документов будут иметь одинаковое значение даты (т. е. будут созданы в течение одной секунды). Возникает вопрос, как в этом случае определить в какой последовательности были созданы документы?

Шифрование строковых данных с помощью CAPICOM.EnvelopedData

Изображение
Шифрование строковых данных. Менеджер криптографии. Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии. Шифрование строковых данных с помощью CAPICOM.EncryptedData Создание тестового сертификата Для получения необходимых утилит для работы с тестовыми сертификатами необходимо установить Visual Studio Express, ибо других способов получения этих утилит я не нашел. Перечень необходимых утилит: makecert - средство создания сертификатов; cert2spc - средство проверки сертификата издателя программного обеспечения; pvk2pfx - средство создания файлов обмена личной информации. Создадим самозаверяющий сертификат, который будет использоваться для шифрования, с указанием поддерживаемого криптопровайдера Microsoft Strong Cryptographic Provider с помощью утилиты makecert.exe: makecert.exe -r -n "cn=1centerprise8.blogspot.com" -sp "Microsoft Strong Cryptographic Provider" -sky exchange -sv C:\test_cert\1centerprise.pvk C:\test_cert\1cente

Грабли метода ПрочитатьXML() объекта ФабрикаXDTO

Изображение
Что таит в себе окно редактирования XDTO-пакета Фабрика XDTO - это библиотека типов, которая описывает определенные структуры XML. В языке программирования платформы 1С имеется объект ФабрикаXDTO , который содержит все пакеты XDTO, имеющиеся в конфигурации, а также предопределенные пакеты (например, пакет типов XML схемы). У данного объекта метод ПрочитатьXML() , позволяет читать элементы данных XDTO указанного типа из объекта чтения XML: ФайлXML = Новый ЧтениеXML; ФайлXML.УстановитьСтроку(СтрокаXML); Пока ФайлXML.Прочитать() Цикл Если ФайлXML.ЛокальноеИмя = "Message" И ФайлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ФайлXML); КонецЕсли; КонецЦикла; ФайлXML.Закрыть(); Первый параметр метода является обязательным, в который передается объект чтения XML. Второй параметр метода необязательный, в который передается тип элемента данных XDTO. Если тип не указан, то будет сделана попытка определить тип данных по текущему сос

Маленькие хитрости больших запросов

Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получить сложную выборку данных, сгруппированную и отсортированную необходимым образом. Классический пример применения запроса - получение сводки по состоянию регистра накопления на определенный момент времени. Так же, механизм запросов позволяет легко получать информацию в различных временных разрезах. Текст запроса – это инструкция, в соответствии с которой должен быть выполнен запрос. В тексте запроса описывается: таблицы информационной базы, используемые в качестве источников данных запроса;  поля таблиц, которые требуется обрабатывать в запросе;  правила группировки;  сортировки результатов;  и т. д.   Инструкция составляется на специальном языке – языке запросов и состоит из отдельных частей – секций, предложений, ключевых слов, фу

Что таит в себе окно редактирования XDTO-пакета

Изображение
Грабли метода ПрочитатьXML() объекта ФабрикаXDTO Термин XDTO (XML Data Transfer Objects) - это не какой-то всемирно принятый стандарт, поддерживаемый платформой 1С, а наоборот, стандарт рожденный в недрах фирмы 1С, хотя очень похож на XML Schema, на недоделанный XML Schema. При добавлении пакета XDTO в дерево конфигурации окно редактирования пакета открывается автоматически. 1. Окно редактирования XDTO-пакета Для того, чтобы открыть окно редактирования пакета XDTO, следует выбрать нужный пакет и выполнить команду "Открыть пакет". 2. Контекстное меню XDTO-пакета Окно редактирования пакета XDTO содержит иерархическую структуру, которая отображается в виде дерева. В корневом элементе расположен идентификатор пакета XDTO, который содержит URI пространства имен данного пакета.

Шифрование строковых данных. Менеджер криптографии.

Изображение
Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии. Шифрование строковых данных с помощью CAPICOM.EnvelopedData Шифрование строковых данных с помощью CAPICOM.EncryptedData Шифрование - обратимое преобразование некой информации с целью сокрытия от неавторизованных лиц и, в это же время, предоставление, авторизованным пользователям доступа к ней. Главная задача шифрования - это соблюдение конфиденциальности передаваемой информации. Методы шифрования: Симметричное шифрование - использует один и тот же ключ и для зашифрования, и для расшифрования; Асимметричное шифрование - использует два разных ключа: один для зашифрования (который также называется открытым), другой для расшифрования (называется закрытым). Объект МенеджерКриптографии платформы 1С позволяет шифровать данные, используя симметричное шифрование, так как криптопровайдеры ОС Windows используют данный вид шифрования (RC2, RC4).

Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии.

Изображение
Что бы инициализировать объект МенеджерКриптографии на платформе 1С, необходимо указать конструктору информацию о модуле криптографии: имя модуля криптографии, путь модуля криптографии (справедливо для Linux) и тип модуля криптографии. Сам менеджер криптографии предоставляет доступ к криптографическому функционалу с помощью заданного модуля криптографии. Перечень криптографических модулей содержится в реестре ОС Windows. Что бы просмотреть этот перечень, открываем командную строку и запускаем оснастку "Редактор реестра". 1. Запуск оснастки "Редактор реестра"

Подготовка SOAP-сообщения перед созданием подписи XMLDSIG на примере СМЭВ

Изображение
Проверка подписи органа власти с помощью сервиса СМЭВ Проверка подписи XMLDSIG на примере СМЭВ Для создания электронной подписи SOAP-сообщения используется WS-Security – это протокол передачи подписанных SOAP-сообщений. Основная его особенность заключается в том, что он работает на транспортном уровне. При разработке Web-сервисов и передаче их WSDL-документов сторонним разработчикам, в большинстве случаев описывается только тело входящего и исходящего SOAP-сообщения, в котором описана вся бизнес-структура передаваемых данных в формате XML. При применении стандарта WS-Security, электронная подпись передается в заголовке SOAP-сообщения, таким образом, в заголовок добавляется XML-структура, в которой содержится электронная подпись, подписывающая данные, находящиеся в теле SOAP-сообщения. Структура электронной подписи SOAP-сообщения

Вызов веб-сервиса выполнением POST-запроса

Изображение
Выполнение POST-запроса на примере Yandex.API Вызов Web-сервиса с помощью динамической ссылки SOAP расширяет HTTP для возможности передачи XML-сообщений, используемых для удалённого взаимодействия и для передачи целых XML-документов. Поэтому, что бы вызвать Web-сервис, необязательно использовать специальные объекты встроенного языка для работы с SOAP, достаточно сгенерировать SOAP-сообщение и выполнить HTTP-запрос методом POST. Формирование SOAP-сообщения Структура SOAP-сообщения выглядит следующим образом: 1. Структура SOAP-сообщения Заголовок <soap:Header> является необязательным и служит для передачи информации, такой как: аутентификация, информация о защите, информация о транзакция и т.д. Платформа 1С не поддерживает работу с заголовком средствами встроенного языка и так же веб-сервисы, реализованные на этой платформе.

Вызов Web-сервиса с помощью динамической ссылки

Изображение
Вызов веб-сервиса выполнением POST-запроса Механизм Web-сервисов позволяет использовать систему, написанную на платформе 1С, как набор сервисов в сложных распределенных и гетерогенных системах, а также позволяет интегрировать ее с другими информационными системами с использованием сервис-ориентированной архитектуры (SOA). Платформа 1С позволяет разработчику вызывать Web-сервисы, предоставляемые другими поставщиками, двумя способами: с помощью статических ссылок, создаваемых в дереве объектов конфигурации; с помощью динамических ссылок, создаваемых средствами встроенного языка. При использовании статической ссылки платформа 1С получает описание Web-сервиса поставщика только один раз, при создании ссылки. За счет этого достигается большая скорость работы. 1. Объект конфигурации WS-ссылки для использования механизма статических ссылок При использовании динамической ссылки, описание Web-сервиса получается каждый раз при вызове Web-сервиса. Скорость работы при этом уменьшаетс

Список значений в составном типе. Задание типа значения списка.

Изображение
Составной тип - коварный тип! Задача : выполнять отбор в списке документов по контрагенту, используя виды отбора Равно, Не равно, В иерархии и В списке . Добавил реквизит формы ПоКонтрагенту , задал для него составной тип ( СправочникСсылка.Контрагент и СписокЗначений ) что бы можно было указывать множество контрагентов для вида отбора В списке . Решил проверить работу выбора контрагентов и ужаснулся, при выборе типа реквизита Список значений , добавление каждого контрагента в список происходило через выбор типа значения списка! 1. Выбор типа значения списка

Выполнение нескольких запросов к БД одним объектом Запрос

Допустим, разработчику требуется  выполнить несколько запросов к базе данных. Для этого он создает несколько объектов Запрос , указывает текст запроса и выполняет запрос, все просто и банально, но можно обойтись одним объектом Запрос . В этом случае требуется объединить тексты запросов в один запрос, используя пакеты запросов, и выполнить его.

Выполнение POST-запроса на примере Yandex.API

Изображение
Выполнение GET-запроса на примере Яндекс.API Выполнение POST-запроса по протоколу HTTPS на платформе 8.2 на примере Yandex.API Платформа 1С поддерживает выполнение HTTP-запросов методом POST. POST-запрос позволяет передать на веб-сервер большой объем данных, в отличии от GET-запроса, например, файл или строку большой длины. Передача значений параметров осуществляется их помещением в тело запроса. Обязательным заголовком для данного вида запроса является Content-Type , в котором указывается кодировка для веб-сервера, что бы он знал как обрабатывать (раскодировать) HTTP-запрос. Рассмотрим выполнение HTTP-запроса методом POST на примере сервиса Яндекс.Геокодер. В запросе мы будем передавать через параметр  geocode  название географического объекта, в ответ нам будут приходить сведения об этом объекте (координаты, название, адрес . . .).

Последовательность вызова событий при записи документа

Изображение
Последовательность выполнения событий при записи в регистр сведений У объекта Документ  имеется свой набор событий, с помощью которых разработчик может вмешаться в процесс записи документа в базу данных используя обработчики этих событий. В зависимости от вида действия, которое выполнит пользователь, события документа вызываются в определенной последовательности. Существуют следующие основные виды действий для документа: Записать Провести Провести и закрыть Отмена проведения Рассмотрим последовательность выполнения событий при каждом действии.

Выполнение GET-запроса на примере Яндекс.API

Изображение
Выполнение POST-запроса на примере Yandex.API Выполнение POST-запроса по протоколу HTTPS на платформе 8.2 на примере Yandex.API Платформа 1С позволяет разработчикам выполнять HTTP-запрос методом GET. С помощью GET-запроса веб-серверу передаются параметры (тело у такого запроса отсутствует), в ответ сервер возвращает некую информацию. Параметры GET-запроса имеют следующий формат  ИмяПараметра=ЗначениеПараметра и разделяются вопросительным знаком. Пример GET-запроса: http://geocode-maps.yandex.ru/1.x/?geocode=Ивановка . Рассмотрим выполнение HTTP-запроса методом GET на сервис Яндекс.Геокодер. В запросе мы будем передавать через параметр geocode название географического объекта, в ответ нам будут приходить сведения об этом объекте (координаты, название, адрес . . .).

Конвертация строковых данных в строку формата base64. Способ N2.

Изображение
Как конвертировать строковые данные в строку формата base64 с помощью стандартных средств платформы 1С описано в этом сообщении: Конвертация строковых данных в строку формата base64 . Плюс данного решения - это использование стандартных средств, то есть ничего устанавливать дополнительно не надо. Минус - это наличие файловой операции, которая занимает определенное время выполнения. Имеется второй вариант решения данной задачи - прибегнуть к использованию библиотеки CAPICOM. Как регистрировать библиотеку и почему её использование не рекомендуется описано в этой статье: Вычисление хэш-сумм MD, SHA при помощи CAPICOM .

Вычисление хэш-сумм MD, SHA при помощи CAPICOM

Изображение
Вычисление хэш-суммы по алгоритму SHA-512 Вычисление хэш-суммы по алгоритму MD5 Вычисление хэш-суммы по алгоритму ГОСТ Р 34.11-94 Установка CAPICOM Компания Microsoft не советует использовать библиотеку CAPICOM, но без её COM-объектов обойтись трудно. Первым делом необходимо скачать Platform SDK CAPICOM . Этот пакет содержит свободно распространяемые файлы компоненты CAPICOM 2.1.0.1 и примеры её использования. CAPICOM можно использовать для электронной подписи данных и её проверки, хэширования данных, шифрования и расшифровки данных и т.д. После запуска скачанного пакета мастер установки произведет копирование файлов компоненты в указанную папку. В папке ...\Microsoft CAPICOM 2.1.0.2 SDK\Lib\X86 находится файл CAPICOM.dll который нужно зарегистрировать в системе, для этого запустите командную строку от имени администратор и выполните команду  regsvr32 CAPICOM.dll : Регистрация библиотеки CAPICOM На этом установка закончена, можно приступать к использованию COM-объектов биб

Последовательность выполнения событий при записи в регистр сведений

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

Получение внесенных изменений в конфигурацию

Изображение
Часто так бывает, что требуется получить информацию о внесенных изменениях в конфигурацию. Рассмотрим три ситуации. Первая ситуация - конфигурация полностью на поддержке Здесь все просто, никаких изменений в конфигурацию не вносили. Вторая ситуация - конфигурация на поддержке с возможностью изменений После разрешения внесения изменений в конфигурацию с сохранением поддержки, платформа создает конфигурацию поставщика в структуре информационной базе. Что бы просмотреть какие были внесены изменения в конфигурацию, нужно перейти в настройку поддержки ( Конфигурация -> Поддержка -> Настройка поддержки ). В открывшемся окне нажать на кнопку Сравнить, Объединить .

Конвертация строковых данных в строку формата base64

Конвертация строковых данных в строку формата base64. Способ N2. Любые данные (строка, картинка, видео и т.д.) конвертируются в строку формата base64. Рассмотрим пример на строковых данных. У платформы 1С имеется функция  Base64Строка на вход которой подаются данные в двоичном виде. Что бы данные привести к двоичному виду, необходимо их записать в файл и создать объект ДвоичныеДанные на основе этого файла. Алгоритм конвертации Записываем строку в текстовый файл с указанием кодировки UTF-8 без BOM ( CESU-8 ); Считываем текстовый файл как двоичные данные; Передаем двоичные данные в функцию Base64Строка

Вычисление хэш-суммы по алгоритму ГОСТ Р 34.11-94

Изображение
Вычисление хэш-суммы по алгоритму SHA-512 Вычисление хэш-суммы по алгоритму MD5 Вычисление хэш-сумм MD, SHA при помощи CAPICOM Реализации вычисления хэш-суммы по алгоритму ГОСТ 34.11-94. Что требуется Так как алгоритм отечественного производства, необходимо установить программные продукты КриптоПро CSP и КриптоПро CADESCOM. После установки программных продуктов КриптоПро будет доступен COM-объект HasheData с ProgID -  CAdESCOM.HashedData . Этот объект предоставляет свойства и методы для вычисления хэш-суммы данных.

Проверка подписи органа власти с помощью сервиса СМЭВ

Подготовка SOAP-сообщения перед созданием подписи XMLDSIG на примере СМЭВ Проверка подписи XMLDSIG на примере СМЭВ Проверка подписи XMLDSIG (WS-Security) с помощью сервиса СПЭП СМЭВ Проверка подписи органа власти Как проверять электронную подпись (ЭП-ОВ, ЭП-СМЭВ, ЭП-ПГУ) формата XMLDSIG у SOAP-сообщения с помощью КриптоПро CSP + КриптоПро CADESCOM рассказывается в этом сообщении . Проверку только подписи органа власти (ОВ) можно выполнить с помощью сервиса СМЭВ: "Сервис проверки технологической электронной цифровой подписи ЭП-ОВ SignatureVerification".

Создание временного сертификата для использования во время разработки

Изображение
Что такое MakeCert MakeCert - инструмент для создания сертификатов X.509, которые предназначены исключительно для тестирования разрабатываемого приложения. Этот инструмент создает пару ключей(открытый и закрытый) для цифровой подписи и помещает её в файл сертификата!!! MakeCert входит в состав пакета Windows SDK, который можно скачать с  http://go.microsoft.com/fwlink/p/?linkid=84091 . Если вам не хочется устанавливать целый пакет разработчика, то вот ссылка на сам файл .

Вычисление хэш-суммы по алгоритму MD5

Изображение
Вычисление хэш-сумм MD, SHA при помощи CAPICOM Вычисление хэш-суммы по алгоритму ГОСТ Р 34.11-94 Вычисление хэш-суммы по алгоритму SHA-512 Как вычислять хэш-сумму по алгоритму SHA-512 описано в этой статье . SHA-512 применяется для защиты информации и считается довольно устойчивой хэш-функцией. Но не стоит забывать о старом добром MD5 , который имеет 128 битную хэш-сумму, выполняется быстрее чем SHA-1, SHA-2 и отлично подходит для создания "отпечатков" большого объема данных. Для вычисления хэш-суммы по алгоритму MD5 воспользуемся COM-объектами, нам потребуется объект с ProgID -  System.Security.Cryptography.MD5CryptoServiceProvider . Он имеет метод ComputeHash, который возвращает хэш-сумму в виде 16-байтового массива.

Рисуем красивые графики математических функций в поле HTML

Изображение
Его величество amCharts Для вывода графиков воспользуемся amCharts - это пакет для построения графиков, различных диаграмм и т.д., реализованный на JavaScript/HTML. Что мне больше всего понравилось в amCharts, он довольно мощный инструмент и его можно использовать абсолютно бесплатно. Единственный минус бесплатного использования проявляется в наличии маленького логотипа на графике. В отличии от HighCharts , разработчики amCharts предоставили пользователям визуальный конструктор графиков, который значительно облегчает жизнь при настройке внешнего вида. Этот конструктор генерирует код на языке JavaScript в зависимости от значений свойств графика, а так же в режиме онлайн показывает как будет отображаться график.

Коротко о режимах управляемых блокировок

Для чего нужна управляемая блокировка? В режиме управляемых блокировок блокировка данных происходит на достаточно низком уровне изоляции транзакции в СУБД, что позволяет достичь высокой параллельности работы пользователей. Существует два вида режима управляемых блокировок: Исключительная Разделяемая

Перемещение файлов с Сервера на Клиент

Иногда так случается, что код, выполняемый на сервере, выгружает файлы во временную папку сервера, а они нужны на клиенте. А всё из-за разделения выполнения кода на два контекста: на сервере и на клиенте. Что бы побороть эту проблему, в арсенале платформы 1С имеются две функции: ПолучитьФайл и ПолучитьФайлы . Эти функции получают набор файлов и сохраняют их в локальную файловую систему пользователя. Более подробнее описание смотри в синтакс-помощнике.

Представление значения в динамическом списке

Изображение
Допустим, у справочника А имеется реквизит Статус с типом Число. Этот реквизит может принимать только четыре числовых значения: 0, 1, 2, 3. Каждое числовое значение имеет свой смысл:  0 - Открыт, 1 - Обсуждается, 2 - Закрывается, 3 - Закрыт. В управляемой форме элемента справочника, элемент формы Статус , который имеет путь к данным реквизита Статус , по-умолчанию будет отображать числовые значения. Что бы задать каждому значению представление, необходимо элементу формы задать список выбора: Список выбора элемента формы Статус

Копирование ключевого контейнера с РуТокен в Реестр с помощью КриптоПро

Изображение
Проблемка Изначально, электронную подпись(ЭП) выдают на физическом носителе под названием RuToken или EToken. На нем храниться сертификат(он же открытый ключ,  как я понимаю) и секретный(он же закрытый) ключ. Эта пара ключей объединяется ключевым контейнером. На одном физическом носителе может быть несколько ключевых контейнеров. После завершения срока действия сертификата, его перевыпускают вместе с секретным ключом, то есть заново создают пару ключей: закрытый и открытый. Так вот, о чем это я, в конторе имеется Рутокен с ЭП, одновременно он может потребоваться нескольким сотрудникам для подписи документов и тут начинаются конфликты. Но на самом деле не все так печально, если ключевой контейнер разрешает себя экспортировать, то его можно поместить с Рутокена в Реестр! Поместив контейнер в реестр и указав сертификату, что закрытый ключ храниться в реестре по такому-то адресу, наличие Рутокена в USB-порту отпадает.

Добавление поддержки VBScript и JScript - расширяем возможности 1С

Изображение
Поиск подходящего COM-объекта Необходимо было получить текущее время на сервере с точностью до миллисекунд. К сожалению платформа 1С вообще не знает что такое миллисекунды, у неё там свои моменты времени. Подходящего COM-объекта я не обнаружил, но на сайте MSDN нашел интересную технологию MS Script Control . Данная технология позволяет исполнять код в своем приложении на языке Visual Basic или JavaScript, то есть в 1С у нас развязываются руки и мы получаем инструмент для работы с системной информацией операционной системы WINDOWS: получить информацию о железе компьютера, записать параметр в реестр и т.д.

Отличия функций РеквизитФормыВЗначение и ДанныеФормыВЗначение

Изображение
Первые проблемы Во времена толстого клиента вызов процедуры модуля объекта из модуля формы был прост. Достаточно было определить процедуру модуля как экспортируемую и вызвать её в модуле формы. Вызов процедуры модуля в толстом клиенте обычное приложение

Как я победил свойство Возможно пустое значение у параметра операции Веб-сервиса

Изображение
Создавая операцию consGetQuestions  у веб-сервиса OnlineConsultant , мне потребовалось, что бы у этой операции параметры могли принимать пустое значение. Такое условие позволяет накладывать различные отборы в запросе в зависимости от значений параметров. То есть, если значение параметра пустое, то отбор не делаем, если не пустое, то накладываем отбор. Операция параметра в конфигураторе выглядит следующим образом: Операция веб-сервиса У неё три параметра ConsultantCode, FromDate и ShowClosed, которые могу принимать пустое значение (свойство Возможно пусто значение = Истина). Например: Свойство - Возможно пустое значение

Отправляем СМС через сервис SMS.RU

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

Использование регулярных выражений в 1С. Да-да, это возможно!

Изображение
  Регулярное выражение - это шаблон текста, который состоит из обычных символов и/или специальных метасимволов. Поиск необходимого COM-объекта   Потребовалось мне выбрать из строки слова, заключенные в квадратные скобки. Например, имеется строка: "Строка с [Квадратными] скобками для [примера]", результат должен быть: "Квадратными" и "примера". Так как у платформы 1С нету стандартной функции по выполнению регулярного выражения, то сразу же полез на просторы MSDN . Там я нашел класс   System.Text.RegularExpressions . Regex , но создать COM-объект этого класса у меня не получилось :(, думаю, может как-то по-другому создается COM-объект для этого класса и полез в Редактор реестра : VBScript.RegExp в редакторе реестра   Там я обнаружил в ветке HKEY_CLASSES_ROOT имя COM-объекта VBScript.RegExp . Этот объект работает на основе библиотеки vbscript.dll и именуется технологией  VBScript Regular Expressions .

Передача файла с клиента на сервер или почему метод Прочитать у табличного документа работает на сервере.

Изображение
Описание проблемы Табличный документ - предназначен для формирования печатных форм первичных документов, отчетов, при размещении на форме также может использоваться в качестве средства интерактивного ввода данных. Табличные документы вида "Макет" служат прообразами для других табличных документов. Макеты могут содержать параметры, предназначенные для заполнения конкретными данными. Перед выводом области макета в результирующую таблицу параметрам можно присвоить значения и результаты выражений. Также макеты могут иметь параметры расшифровки, значения которых задаются аналогично параметрам. Расшифровка не влияет на внешний вид результирующей таблицы и используется для создания связанных отчетов, открытия форм или иных действий. Создал реквизит формы с типом ТабличныйДокумент , вынес на форму сам реквизит и его командную панель и ужаснулся, команда Сохранить есть, а команда Открыть отсутствует. Стандартные команды табличного документа Ладно, сам напишу открытие

Запись объекта, имеющего ссылку на еще не записанный объект

Задача Имеется справочник А ,  у него в подчинении справочник Б (реквизит Владелец у справочника Б имеет тип СправочникСсылка.А ). При записи элемента справочника А в базу данных, нужно сперва создать и записать элементы справочника Б , которые будут ссылаться на элемент справочника А через реквизит Владелец . Все операции записи должны выполняться в одной транзакции! Если при записи элементов справочника Б происходит ошибка, то необходимо отказаться от записи элемента справочника А .

Составной тип - коварный тип!

Список значений в составном типе. Задание типа значения списка. 1) Проверка заполнения реквизита.     Если реквизит составного типа, то проверка реквизита на заполненность значением выполняем только с помощью функции ЗначениеЗаполнено() .     Ответ таков : когда у составного реквизита тип не выбран, то он имеет значение Неопределено , поэтому проверки типа ПустаяСтрока(Реквизит) Или Реквизит.Пустая() могут сгенерировать исключительную ошибку.