Tag Archives: 1С8

Подводные камни при работе в 1С c датами

Работа с датами в 1С

Работа с датой

Знал бы, где упасть – соломки бы подстелил

(Народная мудрость)

Довелось в практической деятельности разработчика в 1С столкнуться со следующим явлением. В базе было создано наперед несколько тысяч объектов справочника «Информационные карты» — для последующего занесения в них и хранения информации о постоянных покупателях торговой сети. Объектов было создано примерно 10 тысяч, на момент возникновения инцидента заполнено данными было около 7 тысяч карт. Каждое утро одно регламентное задание находило именинников среди клиентов сети (данные о которых были занесены в базу), а другое рассылало им поздравительные СМС с приглашениями получить подарок в любом удобном покупателю магазине. Запрос, который выбирал именинников из общей массы, имел приблизительно следующий вид:

На место параметров «День» и «Месяц» подставлялись соответствующие день и месяц текущего дня. Всё шло своим чередом, именинников в среднем находилось по 10-20 с периодическими всплесками до 30, но тут наступило 1е января. Регламент вдруг посчитал нужным поздравить почти 3 тысячи человек (к счастью, телефоны были указаны только у 300 из этого количества).

Анализ ситуации показал, что причиной такого поведения процедуры стало своеобразное понимание понятия NULL создателями среды 1С (а также нежелание привести это понимание к общему знаменателю с пониманием этого у авторов языка запросов SQL).

В данном конкретном случае дело было в следующем. Даже незаполненное данными поле типа ДАТА вовсе не равно NULL, как можно было бы подумать. Среда 1С в пустое поле ДАТА записывает значение Дата(“00010101”), то есть 1 января 0001-го года (видимо, нашей эры, хотя я не был бы столь уверен – имея опыт работы с 1С больше недели), при этом никак не отражая это на форме. В то же время – хотя какие-то данные в поле (и соответствующую ячейку памяти) записаны, функция ЗначениеЗаполнено(Дата) возвращает Ложь. Это обстоятельство стоит учитывать при разработке операций с датами (хотя тип ДАТА вовсе не единственный, где NULLи не заполненное значение вовсе не тождественны) – во избежание подобных затруднений.

Конкретно в данном случае можно либо при обработке результатов запроса проверять значение ДатаРожденияКлиента на заполненность (что менее производительно), либо задавать в запросе отбор еще и по году рождения клиента (например с 1800 – чтобы наверняка)

 

Автор: Виталий Моргун

Урезание логов в SQL Server 2012

Логи транзакций в MS SQL имеют обыкновение разрастаться, что иногда может привести к окончанию места на диске. Чтобы этого не происходило, в SQL Server существует операция урезания логов (Truncate). Урезание логов производится автоматически, в зависимости от модели восстановления:

• В простой модели (Simple) — после достижения контрольной точки;
• В модели полного восстановления (Full) — после создания бэкапа логов, при условии что со времени предыдущего бэкапа была достигнута контрольная точка.

Но бывают ситуации, когда автоматическое урезание по каким либо причинам не производится и логи занимают все свободное место. Причем происходит это всегда неожиданно и требуется срочно освободить место. В этом случае урезание можно произвести вручную.

Подобная ситуация, как правило, происходит с моделью восстановления Full, при использовании которой лог нельзя обрезать до тех пор, пока в резервную копию не попали все транзакции. Это необходимо для того, чтобы обеспечить наличие непрерывную последовательность номеров (LSN) записей в журнале. Соответственно для урезания надо либо сделать полный бэкап базы, либо (что проще и быстрее) временно перевести ее в режим Simple.

Для урезания лога открываем Management Studio, выбираем нужную базу, кликаем на ней правой клавишей мыши и в открывшемся контекстном меню выбираем пункт «Properties». Переходим на вкладку «Options» и изменяем модель восстановления базы (Recovery model) на Simple.

shrink1Затем в том же контекстном меню переходим в раздел Tasks -> Shrink -> Files. В поле File type выбираем Log, в поле File name указываем имя файла логов. В поле «Shrink action» выбираем «Reorganize pages before releasing unused space», задаем желаемый размер файла и жмем ОК.

Обрезание базы данных MsSQL

После завершения операции возвращаем режим восстановления базы обратно в Full.

Тоже самое можно проделать из Query Analizer с помощью скрипта:

Это всего лишь  один из способов быстрого уменьшения размера логов. Не самый красивый ? но наиболее простой и эффективный.

Источник: http://windowsnotes.ru/database/urezanie-logov-v-sql-server-2012/

Услуги программирования в 1С. Киев

Логирование в 1С

linux_and_windows

Часто бывает, необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами.

Использовать для этих целей логирование 1С чрезвычайно не эффективно и не удобно.

В таких случаях удобно использовать подход применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

Итак, рассмотрим программную реализацию в 1С:

Название модуля — К2_Лог

Примеры применения команды:

Фиксация времени выполнения регламентных задач:

В данном примере мы фиксируем время выполнения регламентного задания и записываем данное время в лог. Причем, записываем и начало регламентного задания и окончания. Таким образом, если регламентное задание не завершилось — мы видим, что 2-я строка не записалась.

Фиксация ошибок

В регламентном задании, сообщения не выдаются на экран. Но, их можно писать в лог. Таким образом, если возникают ошибки, имеет смысл их фиксировать в логе.

 

Анализ логов с помощью команд Linux

Операционная система Windows поддерживает очень ограниченный набор команд по работе с тектовыми файлами. Однако, в Linux есть ряд команд, которые позволяют обработать много гигабайтные файлы за считанные секунды.

Мы можем сделать поддержку данных команд. Они, конечно, не гораздо менее эффективно работают, чем в Linux, но позволяют сделать обработку текстовых файлов легким занятием.

Для того, чтоб команды Linux поддерживались в Windows, необходимо сделать ряд вещей:

Необходимо распаковать в системный каталог, доступный в путях пакет UnxUpdates: http://unxutils.sourceforge.net/

После этого в командной строке, будут восприниматься команды Linux.

Вывод на экран последних поступающих строк в логе:

Данная команда полезна для мониторинга поступающих строк в лог-файл.

Поиск нужной строки в логе:

Команда cat — выводит на экран текстовый файл. Команда grep — фильтрует вывод по заданному условию. Таким образом, соединение 2-х данных команд позваляет отфильтровать данные в текстовом файле по заданному выражению.

Вывод на экран строк по заданному слову

Данная команда выводит поступающие строки, в которых заданы указанные слова.

 

Автор: Рудюк С . А. https://corp2.net

Услуги программирования в 1С. Киев

 

 

 

 

 

 

Дизайн интерьеров

1С: Предприятие 8.1 Управление торговлей, 1С: Предприятие 8.1 Бухгалтерия

Диалог позволяет осуществлять групповое проведение документов и восстановление последовательностей проведения документов.

Открываем 1С:Предприятие (в режиме предприятия)  – Операции – Проведение документов.

9f6e394758ee77135fc83377047e5a5b

Проведение документов

На закладке «Проведение документов» осуществляется проведение выбранных документов в указанном интервале. Если Вы хотите чтобы какой – либо документ участвовал в проведение необходимо правой клавишей мыши поставить пометку 6.JPG слева от наименований таких документов.

В нижней части закладки «Проведение документов»  задается интервал дат, в котором будут проводиться выбранные Нами документы. Для установки интервала следует ввести начальную и конечную дату, см. рис. представленный ниже:

fc0d2a1696bb4ef0772aff812401582fПри необходимости проведения документов без ограничения по дате, необходимо установить флажок «Не ограничивать«

614563d3a87e36665a09d8763629af92Также необходимо выбрать какие именно документы будут участвовать в проведении:
·        Проведенные
·        Непроведенные
·        Проведенные и непроведенные

c235ea8de310604e5f544c0d88c62d00После установки всех необходимых параметров для выполнения проведения документов следует нажать кнопку «Выполнить».
Если проведение прошло успешно, будет выдано сообщение «Проведение документов завершено!».

Если Вы хотите выйти из режима проведения документов необходимо нажать на кнопку «Закрыть».

Восстановление последовательности

На закладке «Восстановление последовательности» осуществляется восстановление последовательности проведения документов.

9b7f508610115e01658467bcc4ca03b3

В списке «Восстанавливать последовательности» выводится список всех существующих в конфигурации последовательностей. Те последовательности, которые должны быть восстановлены: слева от наименований таких последовательностей необходимо клавишами или мышью проставить отметку 6.JPG.

В графе «Актуальна» для каждой последовательности выводится текущая позиция границы последовательности.

Далее необходимо указать дату, до которой будет выполняться перепроведение документов. Также можно установить флажок  «Не ограничивать«, если требуется перепровести все документы.

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

Источник: http://esodin.by/main/smallbusiness/Enterprise_8/untitled10.php?option=com_content&task=view&id=108&catid=24

Услуги программирования в 1С. Киев

3D визуализация и интерьер

Регистры сведений в языке 1С 8.3, 8.2 (в примерах)

Регистры сведений

Описание:

Основная задача регистра сведений — хранить существенную для прикладной задачи информацию, состав которой развернут по определенной комбинации значений и, при необходимости, развернут во времени. Регистры сведений информация в которых развернута во времени, называются периодическими.

Например, если мы хотим хранить информацию о ценах конкурентов на продаваемые нами товары, то собранная информация о ценах разворачивается по товарам и конкурентам. А если мы хотим отслеживать динамику изменений цен, и будем заносить их периодически, то хранимая информация разворачивается также и во времени.

Регистр сведений, фактически, представляет собой массив данных, необходимый, чтобы реализовать функцию, которая может выдать необходимую информацию по определенному набору аргументов. Аргументы функции называются измерениями, а результат функции — ресурсами. В приведенном выше примере регистр «ЦеныКонкурентов» будет содержать измерения «Конкурент» и «Товар», и ресурс «Цена». Ресурсов может быть больше чем один: например, можно хранить оптовую и розничную цены.

Для разворота этой информации во времени используется поле «Период» регистра. Оно не вносится в качестве измерения, а добавляется системой автоматически при создании периодического регистра.

Для периодических регистров сведений система поддерживает такие стандартные операции, как получение наиболее позднего или наиболее раннего значения по определенной комбинации измерений (например, получение последней введенной цены по конкретному товару и конкретному конкуренту), а также получения среза наиболее поздних или ранних значений. Например, могут быть получены все последние введенные цены по различным товарам и конкурентам.

Если регистр не периодический, то поле «Период» для него не создается. В приведенном примере регистр «ЦеныКонкурентов» может быть непериодическим, если мы не хотим хранить историю изменения цен, а хотим иметь только актуальные цены. Тогда функция регистра сможет ответить на вопрос «какая сейчас цена у такого-то конкурента на такой-то товар», но не сможет ответить на вопрос «какая была цена у такого-то конкурента на такой-то товар в начале года».

Из описанных принципов работы регистра сведений вытекает то, что в системе может быть только одна запись с определенным набором и периодом измерений.

Действительно, по одному товару по одному конкуренту может быть только одна цена. Если по какой-либо причине мы можем получить несколько цен и хотим занести эту информацию в базу данных, то нам нужно создать еще одно измерение для хранения того значения, по которому эти цены могут различаться. Например, можно завести измерение «ИсточникИнформации». Тогда можно будет вводить цены конкурентов в разрезе источников.

Уникальность записей по набору измерений принципиально отличает регистры сведений от регистров накоплений, которые позволяют вводить несколько записей с одинаковым значением измерений и периодом.

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

Эти два варианта влияют на способ внесения информации, а не на основную логику работы регистра.

Документ, которым вносится запись в регистр сведений, называется регистратором.
Регистры, записываемые независимо, могут свободно редактироваться вручную или средствами встроенного языка. При этом если измерение такого регистра назначено как «ведущее» и значением измерения является ссылка на объект базы данных, то будет считаться, что запись регистра имеет смысл, только пока существует этот объект. Например, если назначить ведущим измерение «Конкурент», то считается, что запись имеет смысл только как информация по данному конкуренту. Соответственно, при удалении конкурента записи по нему будут удалены автоматически.

Если регистр записывается регистратором, то это значит, что записи будут жестко подчинены регистраторам — документам. Обычно это значит, что записи будут порождаться при проведении документов. Соответственно, при удалении документа записи будут удаляться автоматически. В отличие от ведущих измерений, регистратор может быть только один.

В программных модулях для общих действий над регистром сведений (поиск, выбор и создание записей регистра) служит объект РегистрСведенийМенеджер.<Имя регистра сведений>. Для чтения, записи и удаления отдельных записей регистра сведений, не управляемого регистраторами, служит объект РегистрСведенийМенеджерЗаписи.<Имя регистра сведений>. Для считывания и занесения набора записей в базу данных по определенному условию отбора служит объект РегистрСведенийНаборЗаписей.<Имя регистра сведений>. Для динамического обхода записей регистра служит объект РегистрСведенийВыборка.<Имя регистра сведений>.

Источник: http://helpme1c.ru/registry-svedenij-v-yazyke-1s-8-v-primerax

Услуги программирования в 1С. Киев

Удаление 1С на сервере linux(Ubuntu)

http://1cprovse.blogspot.com/2014/08/1-linuxubuntu.html

http://1cprovse.blogspot.com/2014/08/1-linuxubuntu.html

http://1cprovse.blogspot.com/2014/08/1-linuxubuntu.html

Источник: http://1cprovse.blogspot.com/2014/08/1-linuxubuntu.html

Услуги программирования в 1С. Киев

3D визуализация и интерьер

Как распечатать штрих-код, используя шрифты и без использования графики

Иногда очень хочется распечатать штрих-код. Когда это желание становится невыносимым, люди покупают специальные принтеры, инсталлируют не менее специальный софт и наводняютвеб-конференции вопросами “где найти внешнюю компоненту, печатающую штрих-коды?”

На самом деле, это крайний случай, а крайние случаи пагубны. Конечно, если штрих-код нужно печатать на само-клеющихся этикетках размером в четверть кусочка туалетной бумаги, без специального оборудования ничего не выйдет. Но в случае, если печатать нужно на обычной офисной бумаге, можно прекрасно обойтись без капиталовложений.

Почему-то многие считают, что для печати штрих-кодов из 1С нужны некие компоненты (внешние, ActiveX, еще какие-нибудь). Так вот, это неправда. Никаких компонент не нужно. Для воспроизведения на бумаге штрих-кода понадобятся три вещи:

  • нужно знать, какой именно из штрих-кодов (а их немеряно) нам требуется.
  • нужно знать алгоритм формирования этого кода.
  • и нужно иметь Windows-совместимый шрифт, изображающий данный штрих-код. Для EAN13 вполне подойдет шрифт EanBwrP36Tt, а для CODE39 — C39HrP36DlTt.

Что касается первого пункта, то весьма распространенными (и поддерживаемыми всеми без исключения сканерами) являются коды EAN13 и CODE39. А что касается второго и третьего, то это лежит внизу страницы.

После нехитрой адаптации можно будет печатать штрих-коды на ценниках, пропусках, визитках и карикатурах на шефа. Но самое главное — любой документ можно будет снабдить уникальным идентификатором. Зачем тратить на это драгоценный принтерный картридж? А вот об этом — как -нибудь в другой раз 😉

Алгоритмы генерации штрих-кодов в формате *.ert

Шрифты для печати штрих-кодов

Источник: http://www.mista.ru/articles1c/hare/article.20.html

Услуги программирования в 1С. Киев

Предметная визуализация

Нагрузочный тест 1С8.2 и 1С8.3 Гилева

Предыстория

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

Тем не менее существует достаточное количество способов оценить необходимую для достижения требуемой производительности конфигурацию программного и аппаратного обеспечения. Все эти способы могут применяться в процессе выбора, но потребитель должен понимать их области применения и ограничения.

Большинство существующих методов оценки производительности основывается на том или ином типе тестирования.

Можно выделить два основных типа тестирования: компонентное и интегральное.

При компонентном тестировании проводится тестирование отдельных компонентов решения, начиная от производительности процессоров или подсистем хранения информации до тестирования производительности сервера в целом, но без полезной нагрузки в виде того или иного бизнес-приложения.

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

tcp4

Зеленый цвет графика в совокупности с некоторыми условно выбранными за эталоны показателями справа позволяет сделать кроссплатформенную обобщенную оценку «неплохой» производительности.

Как радоваться результатам теста

Вы получили в качестве результата некий индекс производительности (скорости). Не важно, хороший или плохой результат — это результат работы ПЛАТФОРМЫ на вашем «железе». В случае клиент — серверного варианта это результат сложной цепочки прохождения запросов по различным участкам. Вы получаете общий фактический результат, который определяется самым узким местом в системе. Узкое место есть всегда.

Другими словами, и настройки СУБД, и настройки ОС, и оборудование оказывают влияние на общий командный результат.

Какой сервер лучше

Данный тест, выполненный на конкретном сервере, дает результат по совокупности настроек hardware, операционной системы, субд и т.д. Тем не менее высокий результат на конкретном серверном оборудовании означает, что при соблюдении нормальных условий такой же результат будет на идентичном серверном оборудовании. Данный тест является бесплатной помощью в возможности сравнить установку 1С:Предприятие под Windows и Linux, три различных СУБД, поддерживаемых платформой 1С:Предприятие 8.

Безопасность теста

Тест абсолютно безопасен. Он не приводит к «падению» сервера (отсутствует «стресс»-алгоритм) и не требует предварительных мероприятий даже на «боевом» сервере. Конфиденциальных данных в результаты теста также не записываются. Собирается информация о параметрах CPU, RAM, HDD. Серийные номера устройств не собираются. Во всем этом можно легко убедиться — код теста 100% открыт. Никакой пересылки информации без вашего ведома невозможно.

Классификация TPC-A-local Throughput / TPC-1C-GILV-A

Тест относится к разделу универсальных интегральных кроссплатформенных тестов. Даже более того, он применим для файлового и клиент-серверного вариантов эксплуатации 1С:Предприятие. Тест работает для всех СУБД, поддерживаемых 1С.

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

С другой стороны это означает, что для точных расчетов заказного проекта тест позволяет сделать предварительную оценку перед специализированным нагрузочным тестированием .

Скачать тест

Данный тест не является коммерческим  и его можно скачать бесплатно для 8.2  и бесплатно для 8.3

Технические подробности

Что происходит в тесте в рамках «одного» такта операции?

Пример исполнения sql-команд можно посмотреть в приложенном файле.

Особенности использования теста на субд PostgreSQL

Установите значение параметра standard_conforming_strings в конфигурационном файле postgresql.conf в значение ‘off’

Как замерить загруженность железа

Надо отметить, что сам по себе тест уже частично выполняет замер. Для более детальной картины рекомендую воспользоваться утилитой Марка Русиновича Process Explorer.

pe1На рисунке показан пример замера для файлового варианта.


Источник: http://www.gilev.ru/tpc1cgilv/

Услуги программирования в 1С. Киев

Сервер 1С Предприятие. Установка на платформе Linux (Ubuntu)

В данной статье мы рассмотрим установку сервера 1С в среде Ubuntu Server. Решения на альтернативной платформе пользуются заслуженной популярностью в среде пользователей и администраторов, так как позволяют экономить ощутимые суммы за счет отказа от покупки Windows Server, но отличаются повышенной сложностью установки и настройки. Однако если вы будете следовать нашим рекомендациям, то проблем не возникнет.

Как всегда, начнем с краткого теоретического отступления. Сервер 1С Предприятия поставляется в двух вариантах: 32 и 64 бита, которые отличаются прежде всего ценой (42 и 72 тыс. руб.). Ключ от 64-битного сервера позволяет запускать и 32-битную версию, но не наоборот.

В случае с платформой Linux мы рекомендуем чтобы битность сервера 1С и Ubuntu совпадали, хотя вы можете установить 32-битную версию сервера на 64-битный Ubuntu воспользовавшись пакетом ia32-libs, но это выходит за рамки данной статьи. В нашем случае мы будем устанавливать 64-битный сервер на Ubuntu Server 10.04.4 64-бита, однако все сказанное будет справедливо и для 32-битной платформы, существенные отличия мы будем оговаривать отдельно.

Почему 10.04.4, когда на подходе 12.04? Во-первых 10.04 (как и 12.04) — LTS релиз, предполагающий стабильные пакеты и расширенную поддержку, во-вторых 10.04 отлично изучен, все известные баги устранены, все особенности изучены и задокументированы.

В любом случае у нас в запасе остается год для перехода на новый 12.04 LTS, что позволит хорошо изучить новую версию ОС, устранить известные ошибки, создать пользовательскую документацию. Сегодня ничего этого еще нет.

Также мы не рекомендуем использовать промежуточные релизы: 10.10, 11.04, 11.10. Почему? В данных релизах используются последние версии пакетов, производится обкатка новых технологий, они имеют короткий срок поддержки. Конечно никто не может вам запретить их использовать, но в этом случае будьте готовы взять на себя риски возможного нестандартного поведения или отказа системы.

Итак, у нас имеется свежеустановленная и обновленная Ubuntu Server 10.04.4, с установленными mc и ssh, это позволит нам проводить все работы по настройке сервера удаленно, со своего рабочего места. В первую очередь установим необходимые для сервера 1С зависимости. Мы будем приводить отдельную команду для установки каждого пакета, хотя вы можете установить их все за один раз, просто перечислив необходимые пакеты через пробел. Все команды выполняются от имени суперпользователя или через sudo:

Теперь установим пакет ttf2pt1, которого нет в репозитории, его можно взять с нашего сервера. Создадим в домашней директории отдельную папку:

Перейдем в нее:

Скачаем пакет:

Для 32-битной системы:

Установим его:

Создадим символическую ссылку для библиотеки libglib:

Для 32-битной системы:

Внимание! В вашем случае имя библиотеки может отличаться от libglib-2.0.so.0.2400.1, поэтому проверьте фактическое наличие данной библиотеки и при необходимости откорректируйте команды.

Теперь можно приступать к установке непосредственно сервера 1С. Дистрибутив можно получить на дисках ИТС, с сайта поддержки 1С или у обслуживающих вас партнеров. Будем считать что дистрибутив находится у вас на диске. Смонтируем оптический диск:

Создадим каталог для пакетов сервера 1С:

При помощи mc (или иным образом) найдем на диске и скопируем необходимые пакеты в созданную директорию, затем перейдем в нее и установим пакеты:

Изменим владельца для папки 1С:

Настроим автозапуск:

Установим необходимые для работы 1С локали:

Сконфигурируем сервер:

Перезагрузимся:

Теперь на всех клиентских машинах, которые будут работать с нашим сервером 1С добавим в Windows\System32\drivers\etc\hosts следующую запись:

где 1c-server имя нашего сервера, а 10.0.0.128 его IP-адрес.

Если в вашей сети работает DNS-сервер, то можно добавить на нем запись типа A:

где 1c-server имя сервера, а 10.0.0.128 его IP-адрес, domain.local имя локального домена.

Теперь можно установить на клиентскую машину компоненту Администрирование сервера 1С:Предприятия и попробовать подключиться к нашему серверу:

indexЕсли все пройдет удачно, сервер 1С можно признать настроенным и готовым к использованию. Остается только установить драйвер ключа HASP, однако это тема для отдельной статьи и мы рассмотрим ее в ближайшее время.


Источник: http://interface31.ru/tech_it/2012/04/server-1s-predpriyatiya-chast-3-ustanovka-na-platforme-linux-ubuntu.html

Услуги программирования в 1С. Киев

Предметная визуализация

Типовые ошибки установки сервера 1С:Предприятие и PostgreSQL на платформе Linux

Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.

Общая информация

Перед тем, как начинать искать ошибки установки и, вообще, приступать к внедрению серверной версии 1С:Предприятия было бы неплохо освежить представление как это работает:

Сервер 1С Предприятия. Часть 1 — Общие вопросы.

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

index

В нашем распоряжении имеются два сервера под управлением Ubuntu 12.04 x64, на одном из них установлен сервер 1С:Предприятие версии 8.3, на другом PostgreSQL 9.04 от Ethersoft, а также клиент под управлением Windows. Напоминаем, что клиент работает только с сервером 1С, который, в свою очередь, формирует необходимые запросы к серверу СУБД. Никаких запросов от клиента к серверу управления базами данных не происходит.

Сервер баз данных не обнаружен
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)

index2

Данная ошибка возникает при разнесении серверов по разным ПК из-за неправильно настроеной проверки подлинности в локальной сети. Для устранения откройте /var/lib/pgsql/data/pg_hba.conf, найдите строку:

и приведите ее к виду:

где 192.168.31.0/24 — диапазон вашей локальной сети. Если такой строки нет, ее следует создать в секции IPv4 local connections.

Сервер баз данных не обнаружен
could not translate host name «NAME» to address: Temporary failure in name resolution

index3

На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файл hosts на клиенте, что не дает никакого результата…

А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows.

index4

Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.

Ошибка при выполнении операции с информационной базой
server_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.

index5

Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows запись вида:

где указываете адрес и имя вашего сервера 1С:Предприятия. В случае использования локального DNS следует добавить A-запись для сервера 1С.

Ошибка СУБД: DATABASE не пригоден для использования

index6

Гораздо более серьезная ошибка, которая говорит о том, что вы установили несовместимую с 1С:Предприятие версию PostgreSQL или допустили грубые ошибки при установке, например не установили все необходимые зависимости, в частности библиотеку libICU.

Если вы имеете достаточный опыт администрирования Linux систем, то можете попробовать доустановить необходимые библиотеки и заново инициализировать кластер СУБД. В противном случае PostgreSQL лучше переустановить, не забыв удалить содержимое папки /var/lib/pgsql.

Также данная ошибка может возникать при использовании сборок 9.1.x и 9.2.x Postgre@Etersoft, подробности смотрите ниже.

Ошибка СУБД:
ERROR: could not load library «/usr/lib/x86_64-linux-gnu/postgresql/fasttrun.so»

index7

Довольно специфичная ошибка, характерная для сборок 9.1.x и 9.2.x Postgre@Etersoft, также может приводить предыдущей ошибке. Причина кроется в неисправленной ошибке в библиотеке fasttrun.so. Решение — откатиться на сборку 9.0.x Postgre@Etersoft.

Ошибка СУБД
ERROR: type «mvarchar» does not exist at character 31

index8Возникает если база данных была создана без помощи системы 1С:Предприятия. Помните, для работы с 1С базы данных следует создавать только с использованием инструментов платформы 1С: через консоль Администрирование серверов 1С Предприятия

index9или через средство запуска 1С.

index10

Сервер баз данных не обнаружен
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (по паролю)

index11

Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия.

Сервер баз данных не обнаружен
FATAL: database «NAME» does not exist

index12Еще одна очень простая ошибка. Смысл ее сводится к тому, что указанная БД не существует. Чаще всего возникает из-за ошибки в указании имени базы. Следует помнить, что информационная база 1С в кластере и база данных СУБД — две разные сущности и могут иметь различные имена. Также следует помнить, что Linux системы чувствительны к регистру и для них unf83 и UNF83 два разных имени.


Источник: http://interface31.ru/tech_it/2014/05/tipovye-oshibki-ustanovki-servera-1s-i-postgresql-na-platforme-linux.html

Услуги программирования в 1С. Киев

Страница 1 из 3123