В рамках выполнения проекта столкнулся с интересной задачей ускорения загрузки данных из других информационных баз. Задача загрузки данных предполагала выполнение к внешней базе несвязанных между собой запросов, результаты которых помещаются в одну таблицу значений. Когда на оптимизацию запроса рука уже не поднималась, приступил к ускорению загрузки с помощью распараллеливания процессов. Отмечу, что элементы кода в данном посте приведены для клиент-серверного варианта и укрупнено для общего понимания подхода.
Что у нас в 1с Предприятии 8.2 имеется для распараллеливания & это фоновые задачи. Метод, который будет вызываться в фоновой задаче, должен быть прописан в серверном общем модуле и быть экспортным. Естественно нам понадобиться в фоновую задачу передавать и забирать значения.
В моем случае передача значений в фоновую задачу происходила через параметры. Метод ЗагрузитьИзВИБ имеет два параметра это ВходнойПараметр и АдресВХранилище. ВходнойПараметр это структура, в которую сгружаются все данные, необходимые для проведения загрузки. АдресВХранилище это адрес во временном хранилище, по которому будет передан результат загрузки. Сам код метода фонового задания выглядит так:
Зачем нам в фоновую задачу передавать адрес во временном хранилище. Наша фоновая задача должна куда-то положить результат, причем так чтобы мы знали где его потом взять.
Для того чтобы запустить фоновые задачи выполняется следующий код:
Перед запуском фоновой задачи через ФоновыеЗадания.Выполнить() мы формируем массив параметров. Значения из массива параметров переходят в метод фонового задания в качестве параметров. В МассивЗапущенныхЗаданий хранятся все фоновые задачи, которые мы запустили. Теперь надо подождать их ожидания.
После того как все задачи были завершены, можем приступить к получению из них данных. Для этого мы проходим по всем адресам в хранилище, которые хранятся в массиве МассивАдресовВХранилище. После получения результата фонового задания перегоняем его в общую таблицу.
Вопрос определения оптимального количества потоков выходит за рамки данного поста. А после получения некоторых результатов на рабочих данных пока что выходит и за рамки моего сознания . Но если у вас есть идеи как посчитать нужное количество потоков, пишите в комментариях, с радостью почитаю.
Кратко суть проблемы можно озвучить цитатой из документации: "Передача параметра из источника в приемник доступна только при обмене между информационными базами на платформе 1С:Предприятие 8".
Ниже излагается способ передачи глобальных параметров при таком обмене без правки выгруженного из КД 2 модуля выгрузки и без правки самой КД 2.
Итак, в обработчике ПередВыгрузкойДанных пишем код:
после этого данные параметры будут абсолютно штатно загружены в стандартной обработке "Универсальный обмен данными в формате XML (2.1.5)".
Ещё хотелось бы заметить, что содержимое обработчика ПослеЗагрузкиПараметров при таком обмене также не выгружается в файл обмена. Исправить данную оплошность можно так же, записав в обработчике ПередВыгрузкойДанных
Нюанс: чтобы иметь параметры на ранних стадиях загрузки, например, в обработчиках ПередЗагрузкойДанных или ПередОбработкой в ПОД (правилах очистки данных), нужно помещать выгружаемые параметры в корень узла с выгружаемыми данными:
Бывают ситуации, когда в запросе требуется получить остатки не на фиксированную дату (параметр - один на весь отчет), а на произвольную, (когда дата остатков в каждой строке своя).
Существует несколько способов получить нужные данные.
1.Непосредственно в запросе (через реальную таблицу регистра)
Способ подходит практически для любой ситуации, и поэтому наиболее универсален. Единственный, пожалуй, минус этого способа - если в отчете пользователю не требуется курс, то запрос быдет выбирать избыточные данные.
Вызов СрезПоследних() можно использовать только с передачей в него заранее готового значения даты, на которую требуется получить значения. Поэтому сабж делается через стыковку нескольких запросов - основной, к нему стыкуется запрос по регистру сведений с условием по дате и поиском записи с максимальной датой (периодом).
Для общего развития: Что есть срез последних в платформе?
В зависимости от периодичности регистра (по времени, по позизии регистратора) ВТ разворачивается в следующий запрос:
1. По времени (год, месяц, ... секунда)
2. По позиции регистратора
В данном случае нужно еще раз обернуть выборку
Все это можно увидеть посмотрев технологический журнал с включенным режимом протоколирования запросов
2.Система компоновки данных (передача набора значений одной таблицы в параметр виртуальной таблицы)
Данный способ подходит для отчетов. Из очевидных плюсов - если курс (или другие данные) не нужны для построения отчета, то СКД не будет их получать. Однако быстродействие такого отчета может оказаться и несколько ниже, чем в первом способе.
Для примера сделаем отчет - список заказов покупателей.
Для этого создадим набор данных "Документы" - запрос:
Для того, чтобы потом успешно свзать наборы данных, в запрос необходимо включить поля "Дата" и "ВалютаДокумента". Чтобы они не появлялись в списке доступных полей, если это необходимо, их можно убрать, установив флажки ограничений в таблице "Поля" схемы компоновки. В остальном запрос вряд ли требует комментариев.
Для того, чтобы получить информацию о курсах валют, добавим второй набор данных-запрос, "Курсы валют":
В этом запросе имеются 2 параметра: "Дата" и "Валюта". Эти параметры будут установлены СКД при соединении наборов. Кроме того, параметр "Дата" указан в выбранных полях - это нужно для соединения таблиц.
Для ненужный полей "Дата" и "Валюта" также устанавливаем флажки ограничений, чтобы они не появлялись в доступных полях.
Перейдем к соединению наборов. На странице "Связи наборов данных" добавим 2 связи:
1. Источник связи - набор "Документы", приемник - набор "Курсы валют". Выражение источник - "Дата", выражение приемник - "Дата", Параметр - "Дата"
2. Источник связи - набор "Документы", приемник - набор "Курсы валют". Выражение источник - "ВалютаДокумента", выражение приемник - "Валюта", Параметр - "Валюта"
Главное здесь - параметры связи. При соединении наборов данных, если указан параметр, СКД передает в подчиненный набор (в нашем случае - запрос "Курсы валют") параметры, указанные в соединении. Значениями параметров будут значения соответствующих полей набора-источника.
Перейдем к вычисляемым полям. Добавим вычисляемое поле "СуммаВВалютеУпрУчета". Выражение поля - "СуммаДокумента * Курс / Кратность".
Также укажем поля "СуммаДокумента" и "СуммаВВалютеУпрУчета" как ресурсы
Настроим отчет.
Добавим одну группировку "Детальные записи", в выбранных полях укажем "ЗаказПолкупателя", "Курс" и "Кратность". Добавим ресурсы "СуммаДокумента" и "СуммаВВалютеУпрУчета"
Передача команд 1С на выполнение через ссылки в письме. web-сервисы помогают интегрировать 1С с различными программами, делая её более гибкой. Статей в интеренете достаточно можно, но в основном там описывается выгрузка из 1С, обмен между двумя 1С или 1С и каким-то мощным программным продуктом написанным на C или других языках.
Для меня же была поставлена задача возможности управление 1С через браузер. Как пример: обрабатывать завершение задачи БП в 1С по ссылке в письме (примерно такого типа http://site.ru/?user=000000001&bp=000000555, т.е. отсюда видно, что пользователь 000000001 хочет закрыть задачу 000000555), т.е. пользователь со своего смартфона не имеющего доступа к 1С как таковому, должен получить возможность управлять ею извне. Собственно, более сложной задачей можно поставить написание собственных web-форм, более легких и компактных, с произвольным дизайном для управления 1С.
Задача с точки зрения написания кода 1С очень легкая. Основная сложность заключалась в освоении HTML и JavaScript для управления извне. Начальные знаний по этому вопросу я подчерпнул из статьи Примеры пользования web сервисов 1С из браузера.
Настройка 1С
Для возможности использовать 1С в вебе необходимо:
1. Установить модуль расширения веб-сервера;
Программирование 1С
Теперь можно приступить к конфигурированию.
1. Создадим Web-сервис Input:
1.1. Input имеет операцию InputData которая принимает два параметра: User и Command, и возвращает параметр типа "boolean (http://www.w3.org/2001/XMLSchema)". Текст функции InputData:
1.2. Устанавливаем для Input URI пространства имен = "http://infostart.ru". Здесь может быть любое уникальное имя, обычно это ссылка на сайт.
1.3. Устанавливаем для Input имя файла публикации = "input.1cws". Это имя web-сервиса к которому будем устанавливать соединение.
2. Для наглядности примера создадим справочник Данные, все параметры оставим по умолчанию.
3. Публикуем нашу конфигурацию и web-сервис: Администрирование -> Публикация на веб сервере...
На этом конфигурирование заканчивается, всё остальное сделает за нас 1С.
Разработка HTML страницы
Эта часть далась для меня тяжело, т.к. я ещё только делаю первые шаги в этой теме. Буду рад замачаниям и советам. А так, я постараюсь объяснить всё на пальцах тем, кто как и я знаком по большей части с 1С.
После установки ISS (я уже давал ссылку в начале статьи) на диске C появится каталог C:\inetpub\wwwroot, в этом каталоге располагается сайт. Для локальной машины (на которой установили ISS) он виден так http://localhost/, ну а для пользователей извне, как-то так http://infostart.ru (по правде там немного сложнее, но не суть, мы сейчас не про это). Заглавная страница сайта будет грузиться из файла index.htm каталога C:\inetpub\wwwroot
При интеграции 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-НДФЛ.
Во время реализации задачи по регистрации продаж дистрибьюторов на основании Excel документов столкнулся с интересной задачей. Необходимо реализовать загрузку файла и на стороне сервера обработать его, заполнив табличную часть документа.
Решение состоит из двух функций: клиентской и серверной.
Клиентская часть инициирует выбор файла, передачу выбранного файла на сервер и передача управления серверной процедуре.
Серверная процедура перебирает полученные на сервер файлы. Получает COM-объекты и импортирует данные.
В большинстве случаев для установки 1C:Предприятия 8.х в варианте “клиент-сервер” достаточно запуска программы установки 1С:Предприятия 8.х. При этом сервер 1С:Предприятия получает стандартные значения параметров, необходимые для его нормального функционирования.
Рассмотрим установку сервера 1С:Предприятия более детально. В процессе установки сервера 1С:Предприятия 8.х программа установки 1С:Предприятия 8.х выполняет следующие действия:
* Копирует загрузочные модули сервера 1С:Предприятия в каталог, указанный программе установки 1С:Предприятия в качестве конечной папки.
* Если в процессе установки выбрано "Создать пользователя USR1CV81", то создает пользователя USR1CV81. От имени этого пользователя работает сервер 1С:Предприятия 8.1, если он запускается как сервис. Ему доступны только те ресурсы, которые необходимы серверу 1С:Предприятия. Важно, что серверу 1С:Предприятия для работы необходимы два каталога: общий каталог с данными сервера (обычно "C:\Program Files\1cv81\server") и каталог временных файлов (обычно "C:\Documents and Settings\usr1cv81\Local Settings\Temp" или "C:\WINNT\Temp"). Пользователь USR1CV81 получает права на общий каталог с данными сервера. Каталог временных файлов обычно доступен всем пользователям.
* Если в процессе установки включено "Установить сервер 1С:Предприятия 8.1 как сервис Windows", то регистрирует в Windows сервис агента сервера 1С:Предприятия и запускает его. При первом запуске создается кластер серверов 1С:Предприятия с настройками по умолчанию. В нем один рабочий сервер и один рабочий процесс. Адрес рабочего сервера совпадает с именем компьютера, на котором выполнена установка.
Пользователь USR1CV81 или USR1CV82 и его права
Сервер 1С:Предприятия является серверным приложением работа которого не должна зависеть от того, какой пользователь вошел в серверный компьютер в интерактивном режиме, если вообще кто-нибудь вошел. Поэтому при установке сервера 1С:Предприятия желательно создать специального пользователя USR1CV81, наделенного правами, минимально необходимыми для сервера 1С:Предприятия, и не предназначенного для интерактивного входа. Сервер 1С:Предприятия представляется системе Windows пользователем USR1CV81.
Рассмотрим подробнее права, устанавливаемые пользователю USR1CV81. Сервер 1С:Предприятия использует следующие каталоги:
* Каталог загрузочных модулей находится в каталоге, заданном программе установки 1С:Предприятия в качестве конечной папки. В нем расположены загрузочные модули сервера 1С:Предприятия. Пользователь USR1CV81 необходимы права на чтение данных и запуск программ из этого каталога и его подкаталогов. Он получает эти права неявно, благодаря включению в группу Users.
* Каталог данных сервера обычно имеет имя "C:\Program Files\1cv81\server". Пользователю USR1CV81 необходимы полные права на этот каталог. Программа установки 1С:Предприятия при создании пользователя USR1CV81 наделяет его правами на этот каталог.
* Каталог временных файлов обычно имеет имя "C:\Documents and Settings\usr1cv81\Local Settings\Temp" или "C:\WINNT\Temp", которое определяется значением переменной TEMP окружения пользователя или переменной TEMP системного окружения. Посмотреть значение этой переменной можно в диалоге System Properties (Start -> Settings -> Control Panel -> System -> Advanced -> Environment Variables). Программа установки 1С:Предприятия задает пользователю USR1CV81 полные права на этот каталог. Обычно при установки Windows каталог временных файлов доступен всем пользователям посредством включения в его список доступа группы CREATOR OWNER. Однако, это доступ не полный. В частности, всем пользователям не доступна операция поиска файлов в этом каталоге. Установка пользователю USR1CV81 полных прав на каталог временных файлов позволяет серверу 1С:Предприятия выполнять все необходимые ему операции. Посмотреть список доступа можно в диалоге свойств каталога на закладке Security. Наличие группы CREATOR OWNER позволяет обращаться к каталогу любому пользователю, создающему какие-нибудь файлы в этом каталоге или владеющему какими-нибудь файлами в этом каталоге. При этом в списке доступа созданного файла вместо группы CREATOR OWNER будет записан пользователь, создавший файл. Среди пользователей, которым разрешен доступ в этот каталог, должен быть и пользователь USR1CV81, наделенный полными правами на этот каталог.
Важно иметь в виду, что каталог временных файлов определенного пользователя (в том числе и пользователя USR1CV81) определяется комбинацией переменных окружения этого пользователя и системных переменных окружения. Чтобы узнать этот каталог, программа установки 1С:Предприятия запрашивает контекст пользователя USR1CV81. В для этого в Windows 2000 пользователю, от имени которого запускается программа установки 1С:Предприятия, могут потребоваться привилегии: Act as part of the operating system и Bypass traverse checking. Проверить привилегии пользователя можно утилитой Local Sequrity Settings в ветке Local Policies -> User Rights Assignment. В процессе установки нового программного обеспечения программа установки обычно получает эти привилегии автоматически.
Регистрация сервера 1С:Предприятия как сервиса Windows
Сервер 1С:Предприятия является простым консольным Windows приложением и может быть запущен интерактивно. Однако для постоянного использования это неудобно, поскольку ставит запуск сервера 1С:Предприятия от входа итнерактивного пользователя в серверный компьютер. Чтобы исключить эту зависимость, сервер 1С:Предприятия может запускаться как сервис Windows. Для этого он должен быть зарегистрирован в менеджере сервисов Windows.
Для просмотра списка сервисов Windows и их параметров предназначена утилита Component Services (Start -> Settings -> Control Panel -> Administrative Tools -> Services). Сервер 1С:Предприятия представлен в списке сервисов сервисом "Агент сервера 1С:Предприятия 8.1". Параметры сервиса определяют запуск процесса "Агент сервера 1С:Предприятия" (ragent), пользователя, от имени которого он запускается, а также способ перезапуска в аварийных ситуациях.
В диалоге свойств сервиса "Агент сервера 1С:Предприятия 8.1" на закладке General показана строка запуска процесса ragent, который является Агентом сервера 1С:Предприятия. Обычно эта строка имеет вид: "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server"
В ней указано, что:
* процессом Агента сервера является загрузочный модуль "C:\Program Files\1cv81\bin\ragent.exe";
* процесс ragent запускается как сервис Windows и должен управляться менеджером сервисов (-srvc);
* используется как Агент сервера 1С:Предприятия (-agent);
* при первом запуске сервиса должен быть создан кластер с параметрами по умолчанию и главным IP-портом номер 1541 (-regport 1541). По этому порту клиентские приложения должны соединяться с информационными базами, зарегистрированными в кластере;
* IP-порт агента сервера должен иметь номер 1540 (-port 1540). По этому порту Консоль кластера должна соединяться с центральным сервером для выполнения административных функций;
* при запуске процессов кластера на данном сервере им будут динамически назначаться IP-порты из диапазона 1560-1591 (-range 1560:1591).
* общие данные кластера будут размещены в каталоге "C:\Program Files\1cv81\server" (-d "C:\Program Files\1cv81\server").
Сервис "Агент сервера 1С:Предприятия 8.1" может быть добавлен или удален не только при установке или удалении 1С:Предприятия программой установки 1С:Предприятия 8.1, но и вручную. Для этого можно исполнить из командной строки утилиту ragent, указав ей соответствующие параметры.
Для создания сервиса нужно указать параметр -instsrvc и параметры: -usr - имя пользователя, от имени которого должен быть запущен сервис, -pwd - пароль этого пользователя. При этом остальные параметры станут параметрами строки запуска Агента сервера 1С:Предприятия как сервиса. Например, для стандартной регистрации сервиса Агента сервера 1С:Предприятия в отладочном режиме набор параметров должен быть таким:
Для удаления сервиса нужно указать параметр -rmsrvc. Например: "C:\Program Files\1cv81\bin\ragent.exe" -rmsrvc
Иногда бывает полено изменить строку запуска Агента сервера или другие параметры сервиса Агента, например, включить режим отладки, или создать несколько сервисов разных версий. Диалог свойств сервиса не позволяет редактировать строку запуска сервисного приложения и некоторые другие параметры, например, идентификатор сервиса. Для редактирования потребуется утилита regedit, предназначенная для просмотра и редактирования системного реестра Windows.
Внимание! Редактирование системного реестра Windows требует крайней осторожности, поскольку ошибочные изменения в нем могут привести операционную систему в неработоспособное состояние.
Запустите утилиту regedit (откройте Start -> Run и наберите regedit) и выберите ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent
Среди ее параметров есть параметр ImagePath, значением которой является строка запуска Агента сервера 1С:Предприятия. Здесь можно добавить новые параметры строки запуска или поменять значения существующих. Полный список возможных параметров приведен в книге "1С:Предприятие 8.1 Клиент-сервер" документации.
При необходимости регистрации нескольких независимых сервисов Агента сервера 1С:Предприятия нужно указать им разные загрузочные модули, разные порты и разные каталоги данных кластера. Еще требуется зарегистрировать их с разными идентификаторами сервисов. Это можно сделать так:
* Создать первый сервис: "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server"
* При помощи утилиты regedit изменить идентификатор зарегистрированного сервиса. Для этого: выбрать ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent
и изменить ее имя, например на: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent First
* Создать второй сервис: "C:\Program Files\1cv81_10\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d "C:\Program Files\1cv81_10\server"
* Быть может, его идентификатор тоже изменить. Для этого: выбрать ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent
и изменить ее имя, например на: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent Second
Что не может сделать программа установки 1С:Предприятия?
Как уже говорилось, программа установки 1С:Предприятия копирует загрузочные модули 1С:Предприятия и выполняет необходимую регистрацию в COM и в менеджере сервисов Windows. Выше приведена информация, необходимая для понимания внутренних механизмов этой регистрации. Если на серверном компьютере установлен не только сервер, но и клиентская часть 1С:Предприятия, то она готова к работе сразу после установки (и подключения ключей защиты).
Чтобы сервер 1С:Предприятия был доступен с других компьютеров в локальной сети, необходимо проверить сетевые настройки на серверном и клиентском компьютере, а также для сети в целом. Для передачи данных между клиентскими приложениями и сервером 1С:Предприятия, а также между процессами кластера серверов используется TCP/IP. От правильности его настройки зависит работа 1С:Предприятия в варианте клиент-сервер.
Процессы кластера серверов 1С:Предприятия соединяются друг с другом по адресам, определенным в качестве значений свойства "Компьютер" диалога свойств рабочих серверов. Для кластера необходимо, чтобы значением свойства "Компьютер" был либо IP-адрес в точечной нотации, либо такой символический адрес, по которому может быть определен IP адрес при помощи функции gethostbyname, определенной в программном интерфейсе протокола TCP. Определение IP-адреса выполняется либо на основании локальной таблицы символических адресов (C:\WINNT\system32\drivers\etc\hosts), либо по таблицам адресов в доступных DNS серверах. Если по символическому адресу рабочего сервера его IP-адрес не определяется или определяется неправильно (например, IP-адрес не совпадает с фактическим IP-адресом данного компьютера), то кластер работать не будет. Важно, чтобы имена компьютеров и их адреса, определенные в Windows на каждом из рабочих серверов кластера, не противоречили их именам в DNS.
На каждом рабочем сервере процессы кластера используют следующие порты: IP порт рабочего сервера (обычно 1540); IP порты из диапазонов IP портов рабочего процесса (обычно 1560-1591). Кроме того, на центральном сервере кластера используется порт кластера (обычно 1541). Если в системе используются сетевые экраны, то передача данных по этим портам должна быть разрешена. Вместо разрешения портов из приведенного списка можно разрешить передачу данных процессам кластера (ragent, rmngr, rphost).
Соединение клиентского приложения 1С:Предприятия с сервером выполняется в 2 этапа. Сначала оно устанавливает соединение с менеджером кластера. При этом используется адрес центрального сервера (символический или числовой) и порт кластера (обычно 1541). Далее клиентское приложение устанавливает соединение с одним из рабочих процессов. В качестве его адреса используется значение свойства "Компьютер" соответствующего рабочего сервера и порт рабочего процесса, который выбирается из диапазона IP портов рабочего сервера. Передача данных на эти порты должна быть разрешена во всех сетевых экранах на маршруте от компьютера клиентского приложения до компьютеров кластера серверов 1С:Предприятия. Определение IP адреса серверных процессов выполняется при помощи функции gethostbyname на компьютере клиента. Важно, чтобы имена центрального и рабочих серверов и их адреса, определенные в Windows на каждом из серверов кластера, не противоречили их именам в DNS, доступном компьютеру клиента.
И последнее. Очевидно, что для успешного доступа к серверу 1С:Предприятия с других компьютеров он должен быть в сети и должны быть выполнены необходимые для этого настройки. Подключение к сети и методика настройки относятся к администрированию сетей на базе Microsoft Windows и описаны в соответствующих инструкциях.
Особенности настройки SQL-сервера
1С:Предприятие в варианте «клиент-сервер» использует для хранения данных SQL-сервер. При этом к SQL-серверу обращается только Сервер 1С:Предприятия. Клиенты 1С:Предприятия непосредственного доступа к SQL-серверу не имеют. Установка и настройка SQL-сервера подробно описана в документации по Microsoft SQL Server. Для успешной работы Сервера 1С:Предприятия с SQL-сервером необходимо обратить особое внимание на следующие настройки.
* Необходимые компоненты SQL-сервера. Для доступа к SQL-серверу со стороны Сервера 1С:Предприятия на компьютере Сервера 1С:Предприятия должны быть установлены компоненты Microsoft Data Access 2.6 или более поздний.
* Аутентификация пользователя SQL-сервером. Права доступа к базам данных SQL-сервера определяются пользователем, от имени которого происходит обращение к базам данных. С компьютера, на котором установлен SQL-сервер, запустим утилиту SQL Server Enterprise Manager, найдем узел Local (Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local)) и откроем его свойства. На закладке Sequrity можно видеть, что SQL-сервер поддерживает два способа аутентификации пользователей: SQL Server and Windows и Windows only. Аутентификация Windows позволит Серверу 1С:Предприятия обращаться к SQL-серверу только от имени пользователя USR1CV81, что не позволяет различать права доступа до различных информационных баз, обслуживаемых одним сервером 1С:Предприятия. Рекомендуется выбирать режим SQL Server and Windows. В этом случае обращение к конкретной информационной базе будет выполняться от имени пользователя, который задан в качестве пользователя SQL-сервера при создании данной информационной базы. Важно, что этот пользователь должен иметь не только полные права на базу данных информационной базы, но и права на создание баз данных в SQL-сервере и на чтение таблиц базы данных Master.
* Сетевые протоколы для доступа к SQL-серверу. Если Сервер 1С:Предприятия и SQL-сервер размещены на разных компьютерах, то необходимо выполнить настройки сетевых протоколов доступа к SQL-серверу. Это можно сделать при помощи утилиты SQL Server Client Network Utility. На закладке General можно выбрать список сетевых протоколов, используемых для доступа к SQL-серверу. Наиболее быстрым и универсальным является использование протокола TCP/IP. При использовании других протоколов необходимо иметь в виду, что некоторые из них, например Named Pipes, выполняют дополнительную аутентификацию средствами Windows при обмене данными с SQL-сервером. В этом случае для успешной работы с SQL-сервером на компьютере с SQL-сервером должен быть зарегистрирован пользователь USR1CV81, наделенный соответствующими правами. Протокол доступа к данному SQL-серверу может быть изменен на закладке Alias.
При работе с 1С:Предприятие 8.1 по некоторым независящим от нас с Вами причинам вы можете с толкнуться с сообщением об ошибке «Ошибка формата потока».
Например это может произойти так: После запуска chdbfl.exe выдал ошибки во внутреннем файле превышена длина кода, потом показал что ошибки исправлены. После этого запустить конфигурацию не удалось, стала выходить ошибка "ошибка формата потока......".
Способы возможного решения проблемы: * удаление из списка баз и повторное добавление
* очищение данных из каталога "C:\Documents and Settings\пользователь\Application Data\1C\1Cv81"
* простое копирование содержимого каталога bin в новый каталог
Общей причиной возникновения такой ситуации можно считать сбои железа (в одном случае пропала сеть, отключилось электричество), софта и т.д. (и не обязательно 1С).
* Отключите файрволы и антивирусы
* Скопировать базу с исходного источника другой флешкой
В случаи, если есть возможность зайти в режиме конфигуратора, то также есть смысл проверить целостность данных:
* для файловой версии использовать проверку целостности chdbfl.exe
* тестирование и исправление средствами конфигуратора
* выгрузка/загрузка конфигурации
Для ранних версий платформы были характерны механизмы, не контролирующие некорректное хранение данных, поэтому обратите внимание на такие решения как:
* обновили платформу до последней версии (но не просто обновлением, а удалением старой версии, и затем установкой новой)
* очистка журнала регистрации
* в клиент-серверном варианте сообщение "Ошибка формата потока" может возникнуть у клиента, когда одно из приложений из набора 1С:Предприятия, выполняющихся на сервере, не имеет достаточно дискового пространства в разделе /tmp для размещения временных файлов
* проверить обработкой все метаданным все строковые реквизиты (проверяем наличие и удаляем сивмолы 0x1a & 0xFFFF )
Особенно это характерно для ситуаций: после изменения типа реквизита формы справочника при попытке сохранить конфигурацию после долгого продолжительного молчания не приходя в сознание платформа выдала сообщение "ошибка формата потока".
Или в такой ситуации: Если через COMConnector происходит обращение к клиент-серверной базе данных, то возможной причиной ошибки является передача от клиента (COMConnector-а в клиентском приложении) серверу 1С:Предприятия или наоборот значения типа "Строка", содержащего символы с кодами 0x1F или 0xFFFF. Передача может выполняться как через параметры и результат процедур и функций, исполняемых на сервере, так и в том случае, если такие символы содержатся, например, в строковом значении константы.
Запуск исполняемого файла системы 1С:Предприятие 8.x
Помимо запуска путем выбора соответствующей пиктограммы из меню «Пуск —Программы» операционной системы MS Windows, запуск системы 1С:Предприятие 8.x может быть выполнен путем запуска исполняемого файла 1CV8.EXE. Такой запуск может быть произведен, например, при помощи пункта «Выполнить» меню «Пуск» операционной системы MS Windows, или двойным щелчком мыши на имени файла 1CV8.EXE в программе Проводник (Explorer).
В командной строке запуска файла 1CV8.EXE можно указать все необходимые параметры: режим запуска, имя каталога с информационной базой, имя пользовательского каталога, и другие. Если параметры командной строки указаны верно, файл 1CV8.EXE будет запущен в одном из режимов запуска: «1С:Предприятие» или «Конфигуратор» — в зависимости от указанных параметров.
Если при запуске файла 1CV8.EXE обнаружена ошибка в параметрах командной строки, или параметры отсутствуют, то после запуска на экран будет выдан диалог «Запуск 1С:Предприятия». В этом диалоге пользователь может выбрать режим запуска файла 1CV8.EXE, имя информационной базы и другие параметры запуска.
Примеры:
Файловый вариант: "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F"Путь к базе данных" /N"Имя пользователя" /P"Пароль"
Клиент-серверный вариант: "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"НазвСервер\База" /N" Имя пользователя " /P"Пароль"
Если на одном сервере стоит 8.1 и 8.2 (как ставить- тут), то при подключении к базам 8.2 нужно указывать порт сервера(например 1641): "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"server-1C:1641\ZUP" /N"EMigachev" /P"12345" "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"НазвСервер:1641\База" /N" Имя пользователя" /P"Пароль "
Запуск программы под пользователем и выпопление обработки при открытии: "C:\Program Files\1cv82\8.2.17.235\bin\1cv8s.exe" ENTERPRISE /F "D:\1C\HRM" /N user /P password /Execute "D:\1C\Внешние_обработки_1С\РаботающиеОбработки\РабочийСтол.epf" "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /F "ПУТЬ К ПАПКЕ С БД" /N ПОЛЬЗОВАТЕЛЬ /P ПАРОЛЬ /Execute "C:\\обработка.epf"
Архивация информационной базы 1С "C:\Program Files\1cv82\common\1cestart.exe" DESIGNER /S Server-1C\1C-Work82 /N"Администратор" /P"12345" /DumpIB \\bdc\BackUp\Base.dt
"C:\Program Files\1cv82\common\1cestart.exe» config /S server:1641\82_zup /N Администратор /P zzzz /WA- /Out"c:\Backup\backup.log» -NoT_runcate /DumpIB H:\1S_VIGR\82_zup.dt
Для 8.1:
Для файлового варианта: "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"D:\1C_base\ZUPRAZR" /N"EMigachev" /P"12345"
Для клиент-серверного варианта: "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /S"server-1C\ZUP" /N"EMigachev" /P"12345"
Если на одном сервере стоит 8.1 и 8.2 (как ставить- тут), то при подключении к базам 8.2 нужно указывать порт сервера(например 1641): "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"server-1C:1641\ZUP" /N"EMigachev" /P"12345"
Параметры командной строки
При запуске файла 1CV8.EXE в командной строке могут быть указаны следующие параметры:
Параметры командной строки выбора режима:
CONFIG - запуск системы 1С:Предприятие 8.x в режиме «Конфигуратор»;
ENTERPRISE - запуск системы 1С:Предприятие 8.x в режиме «1С:Предприятие»;
CREATEINFOBASE <connect string> [/AddInList [<имя ИБ>]] - создание информационной базы ( <connect string>
строка, задающая параметры информационной базы, каждый из которых представляет собой фрагмент вида <Имя параметра=><Значение>, где Имя параметра — имя параметра, а Значение — его значение.
Фрагменты отделяются друг от друга символами ';'.
Если значение содержит пробельные символы, то оно должно быть заключено в двойные кавычки (").
Для файлового варианта определен параметр:
File — каталог информационной базы;
Locale — язык (страна), которые будут использованы при создании информационной базы. Допустимые значения такие же как у параметра <Форматная строка> метода Формат. Параметр Locale задавать не обязательно. Если не задан, то будут использованы региональные установки текущей информационной базы.
Для клиент-серверного варианта определены параметры:
Srvr — имя сервера 1С:Предприятия;
Ref — имя информационной базы на сервере;
SQLSrvr — имя SQL сервера;
SQLDB — имя SQL базы данных;
SQLUID — имя пользователя SQL;
SQLPwd — пароль пользователя SQL. Если пароль для пользователя SQL не задан, то данный параметр можно не указывать
SQLYOffs - смещение дат, используемое для хранения дат в SQL Server. Может принимать значения 0 или 2000. Данный параметр задавать не обязательно. Если не задан принимается значение 0.
Locale - язык (страна), (аналогично файловому варианту).
Для всех вариантов определены параметры:
Usr — имя пользователя;
Pwd — пароль
/AddInList - параметр, показывающий, под каким именем добавлять базу в список, если не указан, база не будет добавлена в список. Если не указано имя, используется умолчание, аналогичное интерактивному созданию информационной базы.
Одновременное использование ключей не допускается.
Параметры командной строки для указания параметров запуска:
/@<имя файла> - параметры командной строки записаны в указанном файле
/F<Путь> - путь к информационной базе, если она хранится в файле (имя файла указывать не надо)
/S<Адрес> - адрес информационной базы, хранящейся на сервере 1С:Предприятия 8.x, складывается следующим образом:
<Имя компьютера, работающего сервером приложений>\ <Ссылочное имя информационной базы, известное в рамках сервера 1С:Предприятия 8.x>
/N<Имя> -имя пользователя. Должно быть указано так же, как в списке пользователей, создаваемом в Конфигураторе
/P<Пароль> -пароль пользователя, имя которого указано в параметре /N. Если у пользователя нет пароля, этот параметр можно опустить
/WA- запрет применения Windows-аутентификации при старте Предприятия или Конфигуратора
/WA+ установка обязательного применения Windows-аутентификации при старте 1С:Предприятия или Конфигуратора. Если ключ /WA не указывается, то подразумевается, что используется параметр командной строки /WA+
/AU- запрет вывода вопроса об обновлении текущей версии 1С:Предприятия с административной установки
/AU+ установка вывода вопроса об обновлении текущей версии 1С:Предприятия с административной установки. Если ключ /AU не указывается, то подразумевается, что используется параметр командной строки /AU+
/Out<Имя файла> [-NoT_runcate] - установка файла для вывода служебных сообщений. Если задан ключ –NoT_runcate (через пробел), файл не очищается
/L<Каталог> - указывается каталог локализованных ресурсов интерфейса (например, «RU»)
/DisableStartupMessages -Подавляет стартовые сообщения: «Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?»; «Возможностей Вашего компьютера недостаточно для редактирования справки по конфигурации. Для редактирования справки необходимо установить Microsoft Internet Explorer версии 6.0 или выше.»; «Возможностей Вашего компьютера недостаточно для редактирования html-документов, в том числе разделов справки. Для редактирования html-документов необходимо установить Microsoft Internet Explorer версии 6.0 или выше. В данном запуске редактирование html-документов будет недоступно.»
/C<Строка текста> - передача параметра в конфигурацию Параметры командной строки пакетного режима конфигуратора:
/DumpIB<Имя файла> -выгрузка информационной базы в командном режиме
/RestoreIB<Имя файла> - загрузка информационной базы в командном режиме
/DumpCfg<имя cf файла> - сохранение конфигурации в файл
/LoadCfg<имя cf файла> - загрузка конфигурации из файла
/UpdateDBCfg [-WarningsAsErrors] - обновление конфигурации базы данных. Если ключ WarningsAsErrors указан (через пробел), то все предупредительные сообщения будут трактоваться как ошибки
/DumpDBCfg<имя cf файла> - сохранение конфигурации базы данных в файл
/RollbackCfg - возврат к конфигурации базы данных
/CheckModules - выполнить синтаксический контроль
/UpdateCfg<имя cf | cfu файла> - обновление конфигурации, находящейся на поддержке
/IBCheckAndRepair [-ReIndex] [-LogIntergrity] [-RecalcTotals] [-IBCompression] [-TestOnly | [-BadRefCreate | -BadRefClear | -BadRefNone]
[-BadDataCreate | -BadDataDelete] ] - выполнить тестирование и исправление информационной базы
ReIndex - реиндексация таблиц
LogIntergrity - проверка логической целостности
RecalcTotals - пересчет итогов
IBCompression - сжатие таблиц
TestOnly - только тестирование
При наличии ссылок на несуществующие объекты:
BadRefCreate - создавать объекты
BadRefClear - очищать объекты
BadRefNone -не изменять
при частичной потере объектов:
BadDataCreate - создавать объекты
BadDataDelete - удалять объекты
Одновременное использование ключей внутри подгруппы параметров не допускается.
Если команда прошла успешно, возвращает код возврата 0, в противном случае — 1 (101, если в данных имеются ошибки).
После выполнения закрывает систему 1С:Предприятие 8.x.
Параметры командной строки пакетного режима создания файлов поставки и обновления:
/CreateDistributionFiles [-cffile<имя cf файла>] [-cfufile <имя cfu файла> [-f<имя cf файла>|-v<версия дистрибутива>]+] - Создание файлов поставки и обновления
-cffile<имя cf файла> - указание создать дистрибутив
-cfufile<имя cfu файла> - указание создать обновление
-f<имя cf файла> - дистрибутив, включаемый в обновление, задан именем
-v<версия дистрибутива>] - дистрибутив, включаемый в обновление, задан версией
Примечание: группа параметров -f<имя cf файла>|-v<версия дистрибутива> повторяется столько раз, сколько файлов дистрибутивов включается в обновление.
Параметры командной строки режима работы с хранилищем конфигурации:
/DepotF - каталог хранилища
/DepotN - имя пользователя хранилища
/DepotP - пароль пользователя хранилища
/DepotDumpCfg<имя cf файла> [-v<номер версии хранилища>] - сохранить конфигурацию из хранилища в файл (пакетный режим)
-v<номер версии хранилища>
v - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия.
/DepotUpdateCfg [-v<номер версии хранилища>] [-revised] - Обновить конфигурацию хранилища из файла (пакетный режим)
-v<номер версии хранилища> - номер версии, если номер версии не указан, или равен -1, будет сохранена последняя версия, если конфигурация подключена к хранилищу, то параметр игнорируется
-revised - получать захваченные объекты, если потребуется. Если конфигурация не подключена к хранилищу, то параметр игнорируется.
Параметры командной строки пакетного режима регистрации 1С:Предприятия 8.x в качестве Automation сервера:
/RegServer - регистрация приложения
/UnregServer - удаление регистрации приложения
После выполнения закрывает систему 1С:Предприятие 8.x.
Если значения параметров включают пробелы (например, путь или имя файла), значения должны быть заключены в кавычки.
Ниже приведены примеры командной строки для запуска системы 1С:Предприятие 8.x: С:\1CV8\BIN\1CV8.EXE ENTERPRISE /FDB
Приведенная командная строка означает, что система 1С:Предприятие 8.x будет запущена в режиме «1С:Предприятие», а информационная база находится в подкаталоге «\DB» каталога «С:\1CV8\BIN».
С:\1cv81bin\1cv8.exe enterprise /s Serv06\ZUP /L RU
А эта приведенная командная строка означает, что система 1С:Предприятие 8.x будет запущена в режиме «1С:Предприятие», адрес информационной базы ZUP, хранящейся на сервере 1С:Предприятия Serv06 и интерфейс Русский
Для снятия блокировки установки соединений с информационной базой нужно:
Войти в информационную базу, используя параметр запуска "/UC" с тем же кодом разрешения доступа, который был указан при установке блокировки. Запустить данную обработку, указав в качестве действия блокировки "Снять блокировку соединений". Нажать кнопку "Выполнить".
в cmd start C:\Progra~1\1cv81\bin\1cv8.exe /UC <код доступа>
в ярлыке "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /F"D:\Конфигурации\Типовые\УпрТорг" /N"ИмяПользователя" /P"Пароль" /UC 456743
Руководство компании, хочет получать оперативную сводку продаж по фирме на свой почтовый ящик с обратной связью. То есть, посылая письмо на определенный ящик, программа составляет отчет о продажах на текущий день и отсылает на ящик отправителя.
Технический аспект реализации. на почтовом сервере компании заводим ящик autoreport.xxx.ru , в глобальный модуль в предопределенную процедуру ПриНачалеРаботыСистемы вставляем проверку строки запуска 1С для того, что бы определить момент старта проверки поступления новых писем в ящик.
В планировщик задач вписываем запуск 1С Предприятия в “C:\Program Files\1cv8\bin\1cv8.exe” enterprise /DisableStartupMessages /smain\demo /cchangemail и ставим запуск каждые 5 минут. После запуска 1С проверяет переданный параметр если он подходит то происходит вызов внешней обработки в которой формируется отчет и происходит передача отчета обратно на ящик отправителя. Во внешнюю обработку писем процедуру ОтсылкаПоЗаказу() которая проверяет ящик на наличие писем, делает минимальную проверку , но то, что письмо пришло из нашего почтового сервера и отсылает продажи на адрес отправителя.