Кратко суть проблемы можно озвучить цитатой из документации: "Передача параметра из источника в приемник доступна только при обмене между информационными базами на платформе 1С:Предприятие 8".
Ниже излагается способ передачи глобальных параметров при таком обмене без правки выгруженного из КД 2 модуля выгрузки и без правки самой КД 2.
Итак, в обработчике ПередВыгрузкойДанных пишем код:
после этого данные параметры будут абсолютно штатно загружены в стандартной обработке "Универсальный обмен данными в формате XML (2.1.5)".
Ещё хотелось бы заметить, что содержимое обработчика ПослеЗагрузкиПараметров при таком обмене также не выгружается в файл обмена. Исправить данную оплошность можно так же, записав в обработчике ПередВыгрузкойДанных
Нюанс: чтобы иметь параметры на ранних стадиях загрузки, например, в обработчиках ПередЗагрузкойДанных или ПередОбработкой в ПОД (правилах очистки данных), нужно помещать выгружаемые параметры в корень узла с выгружаемыми данными:
Многие спрашивают А где хранится лицензия на 1С: Предприятие 8? или Где посмотреть лицензионный ключ в 1С?
В 1С информацию о полученной лицензии можно посмотреть нажав «Справка» — «О программе»
В разделе Лицензия: сначала идет клиентская лицензия, затем, если это серверный вариант, лицензия сервера 1С
Например будет указан Регистрационный номер комплекта и будет указан путь к файлу лицензии «file://C:/ProgramData/1C/1Cv82/conf/20120430015941.lic».
Начиная с версии платформы 1С:Предприятия — 8.2.15 список сеансов инф. базы в консоли Администрирование серверов 1С:Предприятия содержит колонку с информацией о лицензии, используемой каждым сеансом. Так что учет используемых лицензий аппаратных и программных можно вести в Консоли Администрирования серверов 1С. В средствах программного администрирования имеется свойство License объекта ISessionInfo. В более ранних версиях платформы 1С:Предприятия 8.2 таких средств нет.
Дополнительно:
Файл однопользовательской лицензии лежит в каталоге
C:\Documents and Settings\All Users\1C\1Cv82\conf
файл называется примерно так:
20120302155201.lic
...
Только что установил как описано в статье: сначала после активации в один сеанс пустило, а на втором: "Ключ защиты не обнаружен ....".
Проблема решилась копированием файла лицензии (она по умолчанию сразу попала в каталог:"C:\Users\All Users\1C\1Cv82\conf\2*.lic") в каталог:
C:\Program Files (x86)\1cv82\conf\
...
Если используются программная лицензия на сервер 1С-64x и многопользовательские лицензии лучше сразу отредактировать файлы:
C:\Program Files (x86)\1cv82\8.2.##.###\bin\conf\conf.cfg
C:\Program Files\1cv82\8.2.##.###\bin\conf\conf.cfg
указав один и тот же путь к программным лицензям, например:
ConfLocation=C:\Program Files\1cv82\conf
и в этот каталог положить обе лицензии.
Без этого на платформе 8.2.15 периодически наблюдались траблы типа: лицензию на сервер вижу, а много пользовательские не вижу.
Из всех других файлы лицензий убрать - иначе возможна ситуация когда 1С сама допишет файл лицензии текстом:
"На компьютере *** используются две копии одного и того же файла программной лицензии: file://C:/Program Files/1cv82/conf/2*.lic и file://C:/Program Files (x86)/1cv82/8.2.15.289/bin/conf/2*.lic"
ОСОБЕННОСТИ ЛИЦЕНЗИЙ С ПРОГРАММНОЙ ЗАЩИТОЙ
Клиентские программные лицензии разделяются на однопользовательские и многопользовательские.
Однопользовательская лицензия предназначена для установки на компьютер пользователя и разрешает запуск с этого компьютера произвольного количества сеансов с системой "1С:Предприятие 8". Информационные базы в этих сеансах могут быть созданы с различными конфигурациями. Поддерживается работа клиента как в файловом, так в клиент-серверном варианте.
Многопользовательская лицензия устанавливается:
на компьютер сервера "1С:Предприятия" в случае клиент-серверного варианта информационной базы;
на компьютер веб-сервера в случае файлового варианта информационной базы.
Многопользовательская лицензия позволяет запускать не более обозначенного в Лицензионном соглашении количества сеансов с системой "1С:Предприятие". Данная лицензия не привязана к какому-либо компьютеру пользователя, подсчет количества сеансов выполняется на сервере.
В основные поставки, обеспечивающие запуск приложения на одном рабочем месте, а также в клиентскую лицензию на одно рабочее место входит комплект пинкодов для получения одной однопользовательской лицензии (аналог ключа аппаратной защиты на одно рабочее место).
В каждую клиентскую лицензию на 5, 10 и 20 рабочих мест входит по два комплекта пинкодов: для получения соответствующего количества однопользовательских лицензий и многопользовательской лицензии на соответствующее количество рабочих мест. Перед получением первой лицензии из такого продукта необходимо определиться, как ее предполагается использовать:
установить по одной однопользовательской лицензии на определенные компьютеры и запускать с них произвольное количество сеансов с "1С:Предприятием"
или
установить лицензию на сервер и запускать "1С:Предприятие" с произвольных компьютеров, но при этом ограничить количество одновременно запущенных сеансов.
Важно сделать выбор типа клиентской лицензии перед первым получением лицензии, так как получение лицензии по пинкоду для однопользовательской лицензии сделает невозможным получение лицензии по пинкоду для многопользовательской лицензии, и наоборот, получение многопользовательской лицензии сделает невозможным получение из данного комплекта однопользовательской лицензии.
В клиентских лицензиях на 50, 100, 300 и 500 рабочих мест поставляется комплект пинкодов для получения многопользовательской лицензии на соответствующее количество рабочих мест.
Если требуется увеличить число рабочих мест, то следует докупить нужное количество программных лицензий и установить их на компьютеры пользователей либо на сервер. На сервер может быть установлено произвольное количество программных лицензий в любых комбинациях из поставляемых вариантов.
Программная лицензия на сервер устанавливается на компьютер сервера "1С:Предприятия". Как и в лицензиях на сервер с аппаратной защитой, программная лицензия на 64-разрядный сервер поддерживает также работу 32-разрядного сервера.
Если взамен 32-разрядного сервера с программной защитой потребуется использовать 64-разрядный сервер, то для этого необходимо сделать апгрейд, см. далее раздел "Апгрейд лицензии на сервер".
Тем, кто не сталкивался с 8.2 и всеми проблемами, особенно ранних версий платформы на системах с большим количеством пользователей меры, описанные в этой статье окажутся избыточными. Но все действия продиктованы только опытом, и проверены практикой.
1) Резервный центральный кластер создавать нужно. Это аксиома. Если у вас более 10 пользователей и в течение дня в 1С ведется хоть какая-то работа - выделите хотя бы обычный компьютер с не серверным "железом" под резервный центральный кластер - это пригодится.
2) Резервный центральный кластер - это не кластер включенный в группу резервирования.
Это полноценный центральный кластер, который является копией существующего. Да, это возможно; более того - это нужно делать. Только нужно отключить фоновые задания на резервном кластере серверов. Я не уверен по поводу лицензионного соглашения с 1С, но если в каждый момент времени будет использоваться только один центральный кластер ничего страшного в этом нет. Но сами понимаете, чтобы "подмена" кластеров была "горячей" кое что придется сделать... как минимум сбегать в серверную и переставить ключик. Кроме того резервный центральный кластер можно запускать с ключем -debug (в реестре: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\1C:Enterprise 8.2 Server Agent параметр "imagePath"). И использовать для отладки серверного кода разработчиками. Резервирование центрального кластера в случае использования штатного механизма 1С - штука наверное хорошая, вот только у меня лично она не сработала. Дело в том, что она не работает в случае "подвисания" процесса центрального кластера "rpmngr" - т.е. процесс есть, определить его отсутствие ещё не удаётся, механизм использования резервного центрального кластера не включается. А пока что с центральным кластером чаще всего случались проблемы "зависания" а не "падения".
3) Про 1cestart.exe забудьте. Моё личное мнение конечно, но по-моему этот блок в 1С отдали писать каким-то студентам (что вполне возможно, т.к. стартер не является частью платформы и не особо критичен). Столько ошибок в его работе находили в релизах, столько "глюков" было обнаружено в это простом инструменте, что пользоваться им решительно не советую, особенно в свете того, что далее будет специальный скрипт запуска 1С.
4) Для запуска 1С разработал специальный скрипт:
В данном скрипте "Сетевая папка" нужно заменить на адрес общедоступной папки, в которую вы поместите файлы настроек. По умолчанию файл может быть один. Но так же существует возможность для разных баз использовать разные сервера центрального кластера и разные файлы настроек. Это нужно, к примеру, чтобы сперва в работе новую версию платформы "протестировала" бухгалтерия, а потом уже перешли на новую версию основные торгующие подразделения.
файл настроек при этом будет иметь вид:
Всего 2 строчки. В первой - версия платформы, во второй - имя центрального кластера серверов
Этот скрипт нужно положить в ту же сетевую папку (если безопасность у вас в сети позволяет запускать скрипты из сетевых папок). Если не позволяет - на локальные компьютеры пользователей, и создать ярлыки для баз 1С со строками вида:
Где Base - имя базы в кластере для запуска. Пример скрипта, самосотятельно определяющего текущий EXE-шник 1С:
После этого изменением одной строчки в файле настроек вы сможете переключить запуск пользователей на другую платформу или на другой центральный кластер 1С. Не один раз этот простой скрипт спасал от долгого простоя.
Если имя сервера используется где-то при установке COM соединений - его тоже нужно поменять.
Соответственно при окончательном и бесповоротном падении основного сервера нужно сделать:
а) Останавливаете службу сервера если она ещё сама не остановилась (обязательно нужно это сделать чтобы на сервере не осталось активных пользователей, а то может сбоить нумерация объектов)
б) Переключаете в файле запуск на новый сервер
в) net send * "Перезайдите в 1С"
г) Запускаете 1С с новго сервера - вызываете на всякий случая "ОбновитьНумерациюОбъектов"
д) Включаете фоновые задания но новом кластере серверов
После этого "чините" основной сервер (починка чаще всего заключается в очистке каталога C:\Program Files\1cv82\srvinfo)
И в конце дня те же самые процедуры (кроме оповещения) проделываете для переключения обратно на основной сервер.
Если падение сервера наблюдается после обновления платформы, то к данным действиям нужно еще добавить восстановления COM соединителя на всех клиентских компьютерах (если вы используете COM или OLE) - нудно через установку и удаление программ выбрать нужную вам версию платформы и нажать "восстановить". т.к. COM соединения обычно не используются в критических процессах - они чаще всего нужны для интеграции, то их восстановление "терпит" и вы можете позволить себе обновлять машины, или сделать это групповой политикой, если разрешения для клиентских рабочих станций позволяют.
5) Резервная копия перед обновлением. Обязательно конечно - были уже релизы где все субконто очищались... так что лучше не рисковать
6) Проверка запуска после обновления. Тоже обязательна. И обратите внмание на время запуска... Оно может вдруг увеличиться до оочень большого.
Собственно эта методика позволяет "почти безболезненно" обновлять платформу, и быстро "откатываться" к "старым" релизам в случае возникновения проблем. Так же позволяет быстро переключиться на резервный центральный кластер в случае отказа основного. Успешно работает и опробована в случае работы в едином домене и преимущественно в терминальном режиме. В случае когда не единый домен и пользователи работают не не терминальных серверах появятся ещё "заморочки" с обновлением платформы на клиентских машинах (для них придётся использовать политики групп) и создании общей папки (если не единый домен), но возможности WSH позволяют считать файл из любого места - с этим проблем не будет.
Автор: Олег Филиппов
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. ДЛЯ ИЗМЕНЕНИЯ дает возможность указать в запросе таблицы, считываемые данные которых предполагается изменять. В этом случае другое соединение будет ожидать освобождения этих данных уже в момент считывания внутри транзакции, т.е. не сможет прочесть заблокированные данные до тех пор, пока не будет завершена транзакция, наложившая блокировку. Блокировка от изменения данных считываемых в транзакции выполняется независимо от предложения ДЛЯ ИЗМЕНЕНИЯ. Это значит, что если внутри какой-либо транзакции считаны некоторые данные, то из другого соединения эти данные не могут быть изменены до тех пор, пока блокировка не будет снята. Если запрос выполняется вне транзакции, то в нем могут быть считаны и заблокированные данные.
Блокировки устанавливаются в момент выполнения запроса, сбрасываются же при окончании транзакции. В случае если запрос выполняется вне транзакции предложение ДЛЯ ИЗМЕНЕНИЯ игнорируется.
В случае если после предложения ДЛЯ ИЗМЕНЕНИЯ отсутствуют имена таблиц, блокироваться будут считанные данные из всех таблиц, задействованных в запросе. В случае указания конкретных таблиц будут блокироваться только данные из перечисленных таблиц. Для блокировки можно указывать только таблицы верхнего уровня (т.е. не табличные части), участвующие в запросе. Должны приводиться именно имена таблиц, а не их псевдонимы, определенные в запросе. В случае указания виртуальной таблицы будут блокированы данные из всех таблиц, задействованных в виртуальной таблице. При указании виртуальной таблицы следует записывать ее имя без параметров.
Пример использования предложения ДЛЯ ИЗМЕНЕНИЯ можно посмотреть в типовой конфигурации "Управление торговлей" в модуле документа РеализацияТоваров, в функции СформироватьЗапросПоШапке(Режим), которая вызывается из обработчика проведения документа. В этой функции, в случае оперативного проведения выполняется запрос, в котором накладывается блокировка на регистр остатков:
При работе с 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. Передача может выполняться как через параметры и результат процедур и функций, исполняемых на сервере, так и в том случае, если такие символы содержатся, например, в строковом значении константы.