Частенько бывает, что нужно оповестить или обратить внимание пользователя на оповещение звуком, вот несколько решений:
Стандартный вариант:
Синтаксис: Сигнал()
Описание: Воспроизводит звуковой сигнал. Устройство, воспроизводящее звук, а также характер звукового сигнала зависят от программно-аппаратного состава компьютера и звуковых установок ОС.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Обновлял клиенту бухгалтерию 2.0 и в момент сохранения изменений, на этапе Таблица регистрации изменении конфигурации(1000, 2000 или 3000 и т.д.)
Нажав подробнее, видим:Ошибка SDBL: Выход за пределы размерности результата
Первое что приходит в голову - Перезапуск агента 1С (можно и сервер целиком перезагрузить)
После перезапуска пробую обновить и получаю другую ошибку:
Каталог не обнаружен 'v8srvr://sql/acc_main/configsave/e0666db2-45d6-49b4-a200-061c6ba7d569.6b9d6525-ee94-4e13-b73d-82d3e8e8441d'
по причине: Каталог не обнаружен 'ConfigSave\e0666db2-45d6-49b4-a200-061c6ba7d569.6b9d6525-ee94-4e13-b73d-82d3e8e8441d'
по причине: Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Журнал транзакций для базы данных "acc_main" переполнен. Причина: "LOG_BACKUP". HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=2, Severity=11, native=9002, line=1
Открываем SQL Server Management Studio
Это ошибка Microsoft SQL Server - переполняется лог транзакций и не очищается. Урезать его возможно различными способами, в том числе и с помощью стандартной оснастки, но не всегда данная операция получается, и размер файла лога остается прежним. Как вариант предлагаю следующее решение из двух строчек( где acc_main - название базы Бух)
После выполнения пробуем еще раз обновиться, и.... база обновлена
Вообще, пока ждал обновления, поискал в интернет - что пишут по этому поводу. Вот несколько основных решений:
Перезагрузить службу сервера 1С Предприятия или сервер целиком
Очистить кеш сервера
Обновить платформу 1С на более свежий релиз платформы 1С. Для этого вы можете воспользоваться инструкцией по установки платформы 1С.
В менеджере SQL сервера очистить таблицы _ConfigChngR и _ConfigChngR_ExtProps (используя команду delete)
Действия из этого списка - успешно помогут решить проблему и вернуться к полноценной работе.
Везде пишут и говорят: Настройка панелей - это один из стандартных интерфейсных механизмов. Он предоставляется платформой и доступен пользователям любых прикладных решений. С его помощью пользователь может изменить внешний вид и удобство расположения панелей в соответствии со своими предпочтениями...
Вызвать настройку панели разделов можно из главного меню командой Вид - Настройка панелей...
В идеальном варианте должно открыть окно настроек вида, в котором Вы можете разместить панели как Вам угодно:
Но к сожалению, у многих оно открывается в ином виде и без возможности настройки панелей! Например так:
Во всем виноваты настройки безопасности Internet Explorera
Открываем браузер и идем в настройки Свойства обозревателя:
На закладке безопасность необходимо понизить уровень безопасности - как на примере:
Нажимаем ОК и возвращаемся в 1С Меню Вид - Настройка панелей...
При попытке удалить запись из регистра сведений - получаю ошибку: она заблокирована, ошибка блокировок и т.д.
Отключил всех пользователей, перезапустил сервер, пробую удалить - опять ошибка блокировки
Путем тестов было вяснено, что проблема не в коде, а происходит это на этапе обращения платформы к SQL серверу... после долгих поисков решений, в интернете была найдена статья, которая помогла в решении данной проблемы:
Кто что блокирует, MS SQL + 1C
В повседневной работе достаточно задействовать только первый блок "/*кто кого*/". Открываем MS SQL Server Management Studio, правой на корень - "new query" - вставляем код запроса (только верхнюю часть до "Кто что блокирует", остальное - для детального анализа), выполняем запрос (вверху есть кнопочка выполнения запроса).
Выполнив запрос, запоминаем "ID виновника", быстренько идем в консоль сервера 1С, заходим в ветку "Сеансы" нашей базы. Видим все соединения с 1С-сервером, ищем там колонку "Соединение с СУБД", чтобы увидеть соединения 1С-сервера с MSSQL-сервером. В колонке будет всего несколько заполненных значений, среди них и будет "ID виновника".
Что делать если его там нет, тут 3 варианта:
1. Вернитесь в MSSQL и сделайте запрос еще несколько раз подряд, если значения меняются или таблица вообще пуста - постоянной блокировки нет, у вас (уже) все в порядке.
2. Сеанс который блокирует MSSQL находится в другой базе т.е. блокировка не в той базе (можно попробовать задействовать ветку всех сеансов в консоли 1С-сервера) - вернитесь в MSSQL и внимательно посмотрите в колонку DB в ней находится название базы.
3. Бывает что ID процесса в 1С-консоли вообще отсутствует, такое тоже бывает если у вас есть какие-то внешние программы подключенные напрямую в базу 1С, если пускаете кого-то в MSSQL напрямую, то вариант не исключен.
Недавно, мой постоянный клиент решил проводить маркетинговые исследования по изменению цен на товары у конкурентов... и эти данные захотел использовать в 1С в связке с его прайс-листом + куча отчетов с графиками и процентным отклонением от цен основного конкурента
В результате этого, была написана обработка собирающая данные со страниц разных сайтов. Из целей конфиденциальности - сайты раскрывать не буду...
Вид обработки загрузки данных с сайта в 1С
Ниже код загрузки данных со страницы сайта, смысл такой :
в функция передается адрес страницы сайта
полученный текст страницы обрабатывается, удаляются теги
из полученного текста формируется ТЗ с данными
По названию ищется поставщик из вспомогательного справочника Справочники.Pr_Поставщики.НайтиПоНаименованию(, если нет - создается
на выходе ТЗ с данными
В коде используется вспомогательная функция ПолучитьМассивИзСтрокиСРазделителем
Конечно, перед тем как мы начали это делать - прошерстили интернет и нашли несколько решений , вот они:
В данной статье описан пример реализации загрузки данных накладных из PDF файлов для одного крупного Ритейла...
И так у Нас есть несколько файлов в формате pdf, которые нам необходимо загрузить в 1С.
Чтение PDF файлов из 1С
Первым дело я стал искать, как напрямую можно прочитать данные из 1С в PDF файлах - было найдено много информации и вариантов решений, но к сожалению большинство из них не правильно работали с кодировкой В результате банальный текст вида Красный стул превращался в страшную кракозябру.
Далее после долгих поисков был найден конвертер PDF в TXT - pdf2txt
Бывает, однажды, ни с того и с чего программа 1С нам выдает: Ошибка соединения с сервером 1С:Предприятие Не запущен ни один рабочий процесс. Соединение с базой невозможно.
Несколько вариантов поиска ошибок и решений:
1. Глюк сервака - всякое бывает
Остановите в диспетчере задач процессы: ragent rphost rmngr и Запустите службу «Агент сервера 1С:Предприятие»
2. При внезапном отключения питания или аналогичных ситуациях - повредился файл srvribrg.lst
Нужно удалить все из папки srvinfo
Для Windows зайдите в каталог c:\program files\1c\1cv82\srvinfo, если Linux - то файлы лежат в домашнем каталоге пользователя от имени которого запускается сервис: usr1cv8/home/.1cv8/1C/1cv8 ...
Запустите службу «Агент сервера 1С:Предприятие».
Через Администрирование серверов 1С Предприятия по новой создать кластер 1С и добавить информационные базы
3. Переименовали сервер на котором служба агента 1С
После переименования сервера Windows Server 2008 с установленным 1С:Предприятие 8.2, перестала работать служба «Агент сервера 1С:Предприятие 8.2». Она запускается, работает несколько секунд и останавливается. Если подключаться к серверу 1С:Предприятие 8.2 через консоль серверов, то возникает ошибка:
Ошибка соединения с сервером 1С:Предприятие 8.2 server_addr=tcp://SERVER:1540 descr=Ошибка сетевого доступа к серверу (Windows Sockets - 10061(0x0000274D). Подключение не установлено, т.к. конечный компьютер отверг запрос на соединение.) line=590 file=.\Src\DataExchangeTcpClientItmpl.cpp
При подключении к базе на этом сервере имеем следующую ошибку:
Не запущен ни один рабочий процесс. Соединение с базой невозможно.
Данная проблема связана с тем, что настройки кластера серверов 1С:Предприятие хранятся в файлах в каталоге srvinfo (путь к нему указывает параметр -d в свойствах службы «Агент сервера 1С:Предприятие»). Поэтому после изменения имени компьютера надо выполнить дополнительно следующие действия:
Для Windows зайдите в каталог c:\program files\1c\1cv82\srvinfo, если Linux - то файлы лежат в домашнем каталоге пользователя от имени которого запускается сервис: usr1cv8/home/.1cv8/1C/1cv8 ...
Отредактируйте в любом текстовом редакторе два файла: srvinfo\srvribrg.lst и srvinfo\reg_1541\1CV8Reg.lst. Замените в этих файлах старое имя сервера на новое.
Что такое 1С? 1С — это фирма, у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. «1С:Предприятие» - конкретный продукт, который выпускает компания 1С.
Что такое 1С:Предприятие? 1С:Предприятие — программный продукт компании 1С, предназначенный для автоматизации деятельности на предприятиях всевозможной направленности. Многие называют просто - программа 1С.
Первоначально, продукт 1С:Предприятие был предназначен для автоматизации бухгалтерского учёта и управленческого учёта (включая начисление зарплаты и управление кадрами). Но сегодня этот продукт находит своё применение в областях, далёких от собственно бухгалтерских задач. 1С:Предприятие — это (одновременно) и технологическая платформа, и пользовательский режим работы. Технологическая платформа предоставляет объекты (данных и метаданных) и механизмы управления объектами. Совокупность объектов (данных и метаданных), а также связей между ними, задаваемых программистом, представляет собой конфигурацию. При автоматизации какой-либо деятельности составляется своя конфигурация объектов и связей между ними, задаваемых программно, которая и представляет собой законченное прикладное решение. Конфигурация создаётся в специальном режиме работы программного продукта под названием «Конфигуратор», и параллельно с созданием этой конфигурации существует возможность тут же проверять ее работоспособность в режиме «1С:Предприятие», осуществляя отладку. Пользователи же работают исключительно в режиме «1С:Предприятие», в котором получают доступ ко всем функциям (сообразно правам каждого конкретного пользователя), реализованным в данном прикладном решении (конфигурации).
Предназначение 1С:Предприятия
Для успешного изучения платформы 1С :Предприятия важно понимать для чего собственно она нужна - а нужна она для автоматизации экономической и организационной деятельности предприятия. Заметь, о бухгалтерии и торговле речь не идет. 1С: Предприятие — это универсальная платформа, которую можно приспособить к деятельности абсолютно любого предприятия. Такая универсальность достигается за счет гибкой конфигурируемости. Каждое решение на 1С:Предприятие представляет собой отдельную конфигурацию. Если говорить простым языком, то конфигурация представляет из себя программу (так говорить не совсем верно, но для начала сойдет), для работы которой необходима платформа.
Если ты когда-нибудь слышал про язык программирования Java, то ты должен знать, что для работы написанных на нем программ необходима виртуальная машина. С 1С: Предприятием ситуация аналогичная. Когда мы начнем разрабатывать нашу первую конфигурацию ты сможешь в этом убедиться. Пока тебе главное запомнить, что для работы любой конфигурации (программы) необходимо наличие платформы (1С:Предприятие).
1С:Бухгалтерия, ЗУП, УТ, УПП и т. д.
На основании полученных знаний в прошлом разделе раз и навсегда узнаем и запомним. 1С бухгалтерия — это на самом деле платформа 1С:Предприятие и ти, повая конфигурация (программа) «Бухгалтерия», назначение которой понятно из названия. Следовательно если ты в газете/на сайте видишь объявление «требуется 1С-программист», то это означает, что возможно тебе придется столкнуться или конфигурацией «бухгалтерия» или с «Управление торговлей» или вообще с самописным решением.
Когда я говорил, про конфигурацию «Бухгалтерия», то я применил к ней слово «типововая». Все конфигурации, разработанные на платформе «1С:Предприятие» принято классифицировать как типовые и не типовые. Типовые конфигурации — это те, которые выпускаются и поддерживаются компанией 1С. Среди таких: 1С бухгалтерия, 1С:Управление торговлей, 1 С: Зарплата и кадры и т. д. Не типовые — это все те которые разработаны другими компаниями или отдельными программистами. Я уже говорил, что знакомится с 1С :Предприятие мы будем на примере разработке своей собственной конфигурации. Наш проект будет является не типовой конфигурацией. Типовые конфигурации я рассматривать не планирую, но в будущем может что-то измениться и мы поковыряем бухгалтерию.
Когда лучше использовать 1С:Предприятие?
Все, что можно сделать на платформе 1С:Предприятие, можно повторить на любых других системах разработки. Например, возможностей Delphi, Visual Studio без проблем хватит, на любую задачу. А раз возможностей Delphi (например) хватает, то зачем использовать 1С? Ответ прост до безобразия (во всяком случае это ответ, который я дал сам себе). Главная причина использования 1С — скорость разработки решения. Если на Delphi тебе придется писать ту же бухгалтерию с нуля, то на 1 С: Предприятие у тебя уже есть готовая основа — типовая конфигурация «Бухгалтерия», которую ты можешь либо использовать полностью, либо взять отдельные элементы. Кроме того, 1С:Предприятие аппетитно выделятся на фоне альтернативных решений. Среди ключевых особенностей платформы можно выделить:
1. Большое количество объектов метаданных, которых хватит для решения самых разнообразных задач. Тебе не нужно возиться с создание таблиц в самой БД. Все что ты делаешь — оперируешь объектами платформы, а она в свою очередь использует готовую структуру сервера БД.
2. Поддержка разных СУБД. 1С:Предприятие хорошо работает как с MS SQL Server, так и с бесплатной СУБД — PostgreSQL. Это означает, что делая выбор в пользу 1С:Предприятие, ты можешь сэкономить деньги на лицензиях. Считай, все, что тебе потребуется — купить сам
1С :Предприятие (+сервер приложений). PostgreSQL является бесплатной кросс-платформенной системой, а значит, для сервера с БД тебе подойдет любая unix-like ОС. Получается, что экономия более чем заметна — тебе не требуется серверная ОС от Microsoft, а также MS SQL Server.
3. Простота использования. Как ни крути, а работать с 1С:Предприятие проще, чем с голым СУБД. Встроенный язык программирования по синтаксису похож на паскаль (basic), большинство функций по конфигурированию выполняются мышкой и не представляют сложности. И самое главное - простота использования не сказывает негативного влияние на возможности системы. Они действительно большие и их хватит для многих проектов.
4. Наличие огромного числа специалистов. Сегодня найти специалиста по 1С:Предприятие гораздо проще, чем например, по C#. С одной стороны, такое положение дел весьма неплохое, т. к. найти человека, способного поддерживать/дорабатывать уже работающий проект очень легко.
5. Поддержка со стороны компании 1С. Компания «1С» как никто другой заинтересована в продвижении своих программных продуктов. И продвигает она не рекламой, а качеством и сервисом. По своему опыту могу сказать, что поддержка работает на должном уровне и большинство проблем решается быстро. Программисты компании также не сидят на месте и постоянно фиксят ошибки в платформе, выпуская новые релизы.
6. Поддержка типовых конфигураций. Законодательство в нашей стране меняется со страшной силой и такие перемены очень отражаются на бухгалтерии в виде изменения форм отчетности. Кто хоть раз сталкивался с бухгалтерией или торговлей может представить себе печатные формы отчетов-монстров (вроде Торг2, Торг12 и т. д.). Для правки этих отчетов при использовании сторонних бухгалтерских программ всегда приходилось нанимать программистов, т. к. работать с кодом бухгалтера не могут.
При использовании 1 С: Предприятие и типовой конфигурации «Бухгалтерия» проблема «доработки» стандартных отчетов отпадает раз и навсегда. Программисты компании «1 С» оперативно выполняют все необходимые модификации отчетов (и всех остальных элементов) и поставляют клиентам обновленные версии конфигурацией. Вот с обновлением конфигурации бухгалтер может справится самостоятельно (хотя тут все зависит от конкретного представителя этой расы пользователей . На крайний случай, всегда можно подыскать специалиста из франчайзи, услуги которого будут стоить намного дешевле, чем работа программиста.
В 1С:Управление торговлей 8 повышена масштабируемость платформы и средств разработки прикладных решений. Увеличена производительность.
В "1С:Предприятии 8" повышена масштабируемость:
Различные аспекты масштабируемости "1С:Предприятия 8" рассматриваются в специальном издании и описаны на сайте: http://v8.1c.ru/scale/. Если говорить коротко, то под увеличенной масштабируемостью мы понимаем меньшую зависимость производительности системы от нагрузки (количества пользователей и количества обрабатываемой информации). Или, по-другому, повышенную производительность при той же нагрузке.
Можно ли использовать программу "1С:Управление торговлей 8" в маленьком магазине?
Программа "1С:Управление торговлей 8", выпускаемая фирмой "1С", рассчитана на торговые предприятия самого разного масштаба. Однако, для компаний, в которых с информационной системой работает до 5 пользователей, рекомендуется использовать решение "1С:Управление небольшой фирмой", реализующее меньше продвинутых возможностей, но более простое в использовании. Если сферой деятельности предприятия является розничная торговля, то рекомендуем использовать решение "1С:Розница 8".
В то же время, предприятие может использовать только ту часть функционала "1С:Управление торговлей 8", которая ему необходима. Например, если нет необходимости управлять бизнес-процессом продаж с использованием сделок с клиентами или классифицировать номенклатуру по спектру характеристик, это делать не обязательно. Для работы с программой предприятие не обязано использовать все функциональные возможности.
Подойдет ли программа "1С:Управление торговлей 8" для небольшого торгового предприятия с 15 рабочими местами?
Да, типовая конфигурация "Управление торговлей" ориентирована, в первую очередь, на торговые предприятия с числом сотрудников от 10 до нескольких сотен.
Говорили, что система "1С:Предприятие 8" рассчитана на крупные предприятия, а нам она не подойдет. Соответствует ли это действительности?
Нет, это утверждение не соответствует действительности. Увеличение масштабируемости и возможность работы с большей нагрузкой не означают ориентацию прикладных решений только на крупные предприятия.
Нам кто-то сказал, что работать с программами на новой платформе имеет смысл, когда число компьютеров больше 50. Это правда, что она не подходит?
Возможность работы системы "1С:Предприятие 8" с большим числом активных сессий не означает, что сама платформа и все прикладные решения ориентированы только на большое число рабочих мест. Среди пользователей прикладного решения "Управление торговлей" имеется достаточное малых предприятий с числом рабочих мест от 1 до 20.
Когда возникает необходимость покупки ПО 1C, как правило, большая часть покупателей оказываются перед множеством выбора среди различных способов их приобретения, представляемых фирмой "1С" своим клиентам.
Кроме того, что пользователям доступны десятки различных решений, специально разработанных для разных задач одинаковое решение может выпускаться в виде различных вариантов, например, базовая поставка и версия ПРОФ . Непосредственно, об отличиях и особенностях базовых и ПРОФ версий решений компании "1С" будем говорить дальше.
Базовая поставка программ 1С - это, обычно, бюджетное ПО для одного пользователя. Как известно, базовые поставки предыдущей версии программ 1С:Предприятие 7.7 компанией "1С" теперь не выпускаются (например, купить базовая 1с ЗиУП 8 маожно, а вот ее аналог для 1С:Предприятие 7.7 больше не производится), то мы сравним возможности и ограничения базовой и ПРОФ версии программ 1С Предприятие 8.
Итак, базовая версия программ 1С - это, во-первых, локальная версия программы. Может возникнуть вопрос, но ведь и в описании к версии ПРОФ, так же написано "в комплект поставки включена лицензия на одного пользователя"? Разница заключается в том что, если в дальнейшем возникнет потребность добавить по локальной сети второго пользователя, для совместной работы нескольких пользователей, то для версии ПРОФ, достаточно купить клиентскую лицензию 1с, цена которой, как правило, меньше стоимости основной поставки. В базовой же версии организовать совместную работу по локальной сети нескольких пользователей невозможно. Ни покупка клиентских лицензий, ни покупка нескольких базовых версий не позволит работать нескольким сотрудникам в одной компьютерной сети.
Кроме вышеуказанного, относительно версии ПРОФ, базовая версия имеет ряд дополнительных ограничений, в том числе:
* не поддерживается изменение конфигурации, можно использовать только типовую конфигурацию и устанавливать ее обновления;
* не поддерживается ведение учета по нескольким фирмам в одной информационной базе; при этом имеется возможность ведения учета нескольких компаний в разных информационных базах на одном компьютере;
* одновременно с одной информационной базой может работать только один пользователь;
* не возможна работа в варианте клиент-сервер;
* не возможна работа распределенных информационных баз;
* не возможны COM-соединение и Automation-сервер.
Не смотря ни на что, базовая версия имеет ряд своих преимуществ. Несомненно - это ее цена! Купить 1С Предприятие 8.1 базовую версию для небольшого предприятия, где с программой будет работать только один сотрудник, будет по-настоящему бюджетным решением. Зарегистрированные пользователи имеют возможность бесплатного получения обновлений программы на инетрнет-сайте пользователей.
Кроме того, если Вы уже приобрели базовую версию, но в последствии выяснилось, что теперь Вам нужна версия ПРОФ. Можно будет приобрести ПРОФ версию этой же программы путем upgrade, т.е. заменой базовой версии на ПРОФ с зачетом стоимости.
В процессе разработки прикладных решений возникает необходимость предоставить пользователю возможность выполнять редактирование текстов с оформлением (далее форматированный документ). В качестве примера такой необходимости можно привести написание писем электронной почты, различных служебных записок или сопроводительных документов.
Для работы с форматированным документом предназначен объект ФорматированныйДокумент, с помощью которого можно выполнять программную обработку документа и поле ввода вида Поле форматированного документа, который предназначен для интерактивного изменения форматированного документа.
В информационной базе форматированный документ рекомендуется хранить в реквизите типа ХранилищеЗначения, в который помещается объект типа ФорматированныйДокумент.
Для того чтобы предоставить пользователю возможность интерактивного изменения документа, следует выполнить следующие шаги:
* создать реквизит формы типа ФорматированныйДокумент и установить для него свойство Сохраняемые данные;
* создать элемент формы типа Поле ввода вида Поле форматированного документа и связать его с ранее созданным реквизитом;
* при чтении данных формы (обработчик ПриЧтенииНаСервере()) загрузить в реквизит формы документ, который необходимо редактировать, предварительно получив его из информационной базы;
* перед записью данных формы (обработчик ПередЗаписьюНаСервере()) получить результат редактирования документа и поместить его в реквизит, сохраняемый в информационной базе.
* В процессе работы с документом можно использовать закладки. Закладкой называет позиция в документе. При определении позиции следует учитывать следующие особенности:
o содержимое документа считается одной последовательностью символов.
o перенос строки считается одним символом.
o картинка считается одним символом.
С помощью закладок можно получать и устанавливать выделение или позицию курсора в редакторе, добавлять и удалять элементы текста в документе (собственно текст, картинка, перевод строки).
Если при получении выделения позиции начала и окончания выделения совпадают, это значит, что выделение отсутствует и получено положение курсора. Также и при установке выделения: если начальная и конечная позиция выделения совпадают – происходит изменение позиции курсора, без выделения. Также следует помнить, что при программном изменении выделенного текста не происходит отмены выделения. Выделение остается в тех же позициях, в которых оно было до программного изменения текста.
Приведем пример получения и установки выделения в редакторе форматированного документа:
Один из наиболее актуальных сегодня вопросов создания, поддержки и развития информационных систем организаций — задача интеграции их отдельных подсистем и компонентов. Платформа «1С:Предприятие 8» обладает значительным спектром функций и механизмов взаимодействия с внешними программами и оборудованием на основе общепризнанных открытых стандартов и протоколов.
Довольно большую группу среди них составляют средства обмена данными, которые мы и рассмотрим в этой статье.
Для начала нужно сказать о довольно простых, но в то же время эффективных и часто используемых на практике возможностях.
* Работа с текстовыми документами. Встроенный язык платформы позволяет разработчику создавать, динамически формировать и записывать текстовые документы, в том числе на основе готовых шаблонов. Обмен данными с использованием текстовых документов может быть одним из самых простых способов взаимодействия с другими информационными системами.
* Последовательное чтение текстовых файлов. Дело в том, что такие файлы могут быть очень большого объема, поэтому существуют специальные программные объекты, позволяющие читать и записывать их быстро (с использованием оптимизированных алгоритмов).
* XML. Платформа позволяет организовывать интеграцию с прикладными системами с использованием XML-документов, являющихся на сегодня общепринятым средством представления данных. Поддержка XML выполнена на уровне встроенного языка.
* DBF-файлы. Механизм работы с базами данных формата DBF предназначен для обеспечения возможности манипулирования ими непосредственно из языка системы через объект xBase. Можно как работать с существующими базами данных, так и создавать новые базы данных произвольной конфигурации.
* Работа с файловой системой. Доступ к функциям работы с файловой системой реализован на уровне встроенного языка. Эта возможность может быть использована при организации взаимодействия с другими информационными системами через общие каталоги.
Базовые средства обмена данными
Платформа также содержит набор специализированных средств обмена данными для создания распределенных информационных систем на основе программ «1С:Предприятия» и решений других поставщиков.
Они реализуются благодаря использованию ряда средств платформы, которые разработчик может применять как по отдельности, так и в различных комбинациях, в зависимости от конкретной решаемой задачи. Такой подход позволяет обеспечить гибкость механизмов обмена и их настраиваемость на решение как можно большего круга задач. В состав средств платформы, используемых для построения схем обмена данными, входят:
* объекты «обмена»,
* средства сериализации,
* средства документов.
При помощи этих средств могут быть реализованы две основные технологии собственно обмена данными:
* универсальный механизм обмена данными;
* механизм управления распределенными информационными базами.
Планы обмена содержат информацию об узлах, которые могут участвовать в обмене данными, определяют состав информации и указывают, следует ли задействовать механизм распределенной информационной базы при обмене. В качестве узлов могут выступать информационные базы «1С:Предприятия» или других систем. Для каждого узла можно задать код, наименование и необходимый перечень реквизитов, описывающих узел. Узел может иметь также несколько подчиненных табличных частей для хранения информации, связанной с этим узлом, несколько форм для отображения информации, содержащейся в плане обмена, и т. д.. В плане обмена указывается также состав данных, которыми предполагается вести обмен. Для каждого из объектов прикладного решения, которые могут участвовать в обмене, можно задать режим автоматической регистрации их изменений. Программно разработчик всегда может выполнять регистрацию на уровне встроенного языка.
В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один — для обмена со складами, другой — для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно уже, чем состав данных, предназначенных для обмена с офисами.
С помощью объектов «план обмена» реализованы два важных внутренних механизма платформы.
* Служба регистрации изменений. Позволяет получать информацию о том, какие элементы данных были изменены и в какой узел обмена их необходимо передать. Для каждого элемента данных, указанного в плане обмена, ведется своя таблица регистрации изменений. Они имеют разную структуру в зависимости от того, для каких элементов данных регистрируются изменения, но все-таки структуры таблиц подобны. Каждая запись указывает на некоторый элемент данных, некоторый узел и содержит номер сообщения, в котором это изменение передано в первый раз.
* Инфраструктура сообщений. Перенос данных между узлами распределенной информационной базы выполняется с помощью сообщений, которые поддерживаются инфраструктурой сообщений. Каждое сообщение относится к определенному плану обмена, имеет определенный узел-отправитель, узел-получатель и целочисленный номер.
XML-сериализация — это процесс преобразования данных «1С:Предприятия» в последовательность данных формата XML и наоборот.
Средства чтения и записи XML-документов позволяют работать с данными формата XML на «базовом» уровне, без привязки к объектам «1С:Предприятия». В частности, они дают возможность открывать XML-документы для чтения, читать из них данные, создавать новые XML-документы и записывать в них данные. Все это активно используется при реализации различных схем обмена данными.
Универсальный механизм обмена данными
Универсальный механизм обмена данными предназначен для создания территориально распределенных систем на основе как «1С:Предприятия», так и решений других поставщиков. Однако этот механизм позволяет переносить только данные, перенос конфигурации и административной информации «1С:Предприятия» при его помощи невозможен. В качестве формата обмена используются XML-документы, при этом при обмене данными между информационными базами «1С:Предприятия» не накладывается ограничений на идентичность конфигурации и структуры конкретных объектов. В то же время в одной конфигурации может быть создано несколько независимых схем обмена с различными информационными системами. Важно также и то, что при организации схемы обмена не накладывается ограничений на структуру распределенной системы. Может быть организована как классическая структура типа «звезда», так и более сложные многоуровневые структуры типа «снежинка» и др.
Разработчику прикладного решения предоставляется возможность гибкого управления составом обмена с точки зрения как структуры передаваемых данных, так и состава передаваемой информации в конкретные узлы обмена. Объект базы данных первоначально создается в одном из узлов обмена, при этом состав передаваемой информации может регулироваться в зависимости от содержимого данных и не зависит от места первоначального ввода информациии.
Механизм управления распределенными информационными базами
Механизм управления распределенными информационными базами (УРИБ) играет ключевую роль в создании территориально распределенных систем на основе идентичных конфигураций «1С:Предприятия 8» (распределенная система должна иметь древовидную структуру, в которой существует корневой узел и определено отношение «главный—подчиненный» для каждой пары связанных узлов). Данная технология обеспечивает регистрацию изменений в базах данных, инфраструктуру сообщений и обмен информацией в формате XML. Централизованное управление конфигурацией системы осуществляется с помощью визуальных средств или программным образом. С ее помощью выполняется не только обмен данными, но и перенос программной конфигурации.
УРИБ реализует следующие основные возможности:
* интерактивное создание распределенной системы и выполнение обмена данными без дополнительного программирования;
* обеспечение идентичности конфигураций информационных баз, входящих в состав распределенной системы;
* подключение новых и отключение существующих узлов;
* создание начального образа информационной базы для нового узла;
* различные способы разрешения коллизий при одновременном изменении данных в разных узлах распределенной системы;
* в рамках одной распределенной информационной базы может быть создано несколько схем обмена;
* распределенная информационная база может содержать схемы обмена с другими информационными системами, в том числе с информационными базами «1С:Предприятия», не являющимися распределенными информационными базами;
* задание условий на передачу и прием изменений на уровне отдельных элементов данных;
* восстановление обмена данными в таких случаях, как восстановление информационных баз из резервных копий и т. д.;
* сжатие сообщений обмена в формате .ZIP и автоматическую распаковку сообщений обмена при приеме.
Различные способы управления обменом данными
Отличительная особенность механизма УРИБ заключается в том, что во всех узлах должны быть одинаковые конфигурации и между двумя связанными узлами должны быть установлены отношения главный—подчиненный. Благодаря этому процесс обмена можно формализовать и создавать распределенные информационные базы даже без программирования, так как система «знает», как обмениваться информацией. В отличие от этого, при использовании универсального механизма обмена данными в узлах может быть что угодно и взаимодействовать они могут как угодно, поэтому обязательно нужно писать код, описывающий правила такого взаимодействия. Таким образом, механизм УРИБ — это быстро и просто, но по определенным правилам, а универсальный механизм обмена данными — это «как угодно» и поэтому сложнее и требует написания всего кода вручную.
В целом же прикладное решение может содержать произвольное количество планов обмена как с использованием механизма УРИБ, так и без его использования. Например, одна и та же информационная база может входить в состав различных распределенных систем. Например, по одному плану обмена (с использованием УРИБ) она будет «общаться» с филиалами, а по другому плану обмена (с применением универсального механизма обмена данными) она может работать с корпоративной информационной системой (не «1С:Предприятие»), поставляя туда данные о работе филиалов для создания консолидированной отчетности по всему холдингу в целом.
Таким образом, программные средства и механизмы «1С:Предприятия» позволяют создавать различные по структуре однородные и неоднородные распределенные информационные системы.
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было решено использовать геокодирование сервиса Google и Google Visualization для отображение элементов на карте.
Геокодирование – процесс преобразования адресов·(Украина, Киевская область, Киев, Крещатик 20) в географические координаты (широта 37.423021 и долгота -122.083739), которые можно использовать для размещения маркеров или расположения карты. Подробно про геокодирование можно почитать тут.
Важный момент: если у вас программа работает в локальной сети и в Internet, то вам необходимо регистрировать два ключа. В зависимости от того, с какого места подключается пользователь к базе подставлять тот или иной ключ.
И так, собственно программная реализация.
В конфигурации есть две общих формы:
* Форма подбора координат. Данная форма формирует запрос на геокодирование и обрабатывает результат.
* Форма отображения объектов. Данная форма использует API визуализации Google. В частности данная форма использует визуализацию Map.
Запрос и обработка результата геокодирования.
Формирование запроса происходит с ключом output=csv, для вывода результата запроса в csv файл. После выполнения запроса проверяется код результата запроса и разбор csv файла на широту и долготу.
Формирование карты отображения
При формировании отображения объекта на карте к стандартному коду визуализации добавлен следующий:
Это связано с тем, что платформа не хочет сразу обновлять фрейм поля html документа.
Если такое происходит, обратите внимание на следующее:
Посмотрите, какой режим восстановления (Recovery) стоит на закладке Options в свойствах базы данных. Он бывает Simple (простой, который требует наименьшего администрирования) или Full (полный, который обеспечивает наилучшую возможность восстановления данных после сбоя). В режиме Full возможен рост журнала транзакций (LDF), поскольку изменения базы данных накапливаются в этом журнале.
Уменьшение журнала транзакций зависит от операции резервного копирования (backup): если не делать резервное копирование, то лог транзакций в режиме Full будет расти.
Обратите внимание на пункт контекстного меню "Shrink Database" (shrink - англ. усадка, усушка, уменьшение). Эта операция уменьшает размер базы данных путем "удаления неиспользуемых страниц" ("remove unused pages").
В свойствах базы данных есть опция "Auto Shrink", которая активизирует автоматическое уменьшение базы, во время периодических проверок неиспользуемого места ("during periodic checks for unused space").
Для базы данных предприятия в свойствах базы я установил опцию Full Recovery. На этой же закладке я установил флажок Auto Shrink. Базу надо периодически архивировать, для чего я настроил автоматическое архивирование базы данных (каждое утро) и журнала транзакций (каждые 10 минут).
Режим восстановления базы данных:
Режимы восстановления базы данных (recovery models) баз данных SQL Server 2005, полное протоколирование (full), неполное протоколирование (bulk-logged), простая модель восстановления (simple)
Одно из важных решений, которые нужно принять при создании базы данных — в каком режиме восстановления будет работать база. Этот параметр выбирается на вкладке Options свойств базы данных в строке Recovery Model (Режим восстановления) (над списком остальных параметров). Изменить режим восстановления базы данных можно также при помощи команды A_lter DATABASE.
Всего предусмотрено три режима восстановления базы данных: Full (режим полного протоколирования) — в этом режиме максимальное количество операций записывается в журнал транзакций. Журнал транзакций автоматически не обрезается. Этот режим обеспечивает максимальные возможности восстановления (за счет снижения производительности). Только в этом режиме вы можете использовать зеркальное отображение баз данных и автоматическую доставку журналов (log shipping). Именно этот режим выбирается по умолчанию для пользовательских баз данных, поскольку он настроен для базы данных model. Если изменить режим восстановления для базы данных model, то для создаваемых баз данных по умолчанию будет выбираться новый режим.
Bulk-logged (режим неполного протоколирования) — это компромисс между требованиями производительности и возможностями восстановления. При использовании этого режима запись в журнал практически отключается (в терминологии Microsoft — проводится минимальное протоколирование) для операций следующих типов:
- массовой вставки (команды BULK I_nsert, S_elect INTO, загрузка средствами bcp и т. п.);
- вставка/изменение больших двоичных данных (text, ntext, image);
- операции по созданию, перестроению и удалению индексов.
Автоматическая перезапись журналов транзакций при этом не производится, работа с транзакциями, не включающими в себя перечисленные операции, производится как обычно.
При работе в этом режиме вы лишаетесь возможности использовать журнал транзакций для восстановления (при утрате файлов данных, на момент времени или на метку транзакции), если в нем была хотя бы одна запись о перечисленных ранее операциях. Microsoft рекомендует не использовать этот режим восстановления на постоянной основе, а переключаться в него из режима Full на время выполнения больших операций массовой вставки, а потом возвращаться обратно.
Simple (простая модель восстановления) — максимальный выигрыш в производительности и удобстве работы за счет возможностей восстановления. Минимально протоколируются те же операции, что и в режиме восстановления Bulk-logged, а кроме этого, журнал транзакций автоматически очищается (блоками, размер которых изначально равен 256 Кбайт, но при необходимости он может быть автоматически увеличен). В результате вы получаете максимальную производительность и возможность не думать о потенциальной нехватке места в журнале транзакций. Но в этом режиме использовать журнал транзакций для восстановления уже не удасться. Вы не сможем даже выполнить резервное копирование журнала транзакций: команда BACKUP LOG в этом режиме сразу вернет ошибку.
Какой же режим восстановления выбрать?
Microsoft (в своих учебных курсах) рекомендует для рабочих баз данных выбирать только режим Full. Однако из опыта проведения автором этих самых учебных курсов и общения со слушателями можно сказать, что очень многие опытные администраторы сознательно настраивают для своих баз данных режим восстановления Simple. Значительное повышение производительности при операциях массовой вставки и при работе с большими двоичными данными вполне оправдывает некоторое снижение возможностей резервного копирования и восстановления. Что важнее для вашей задачи — дополнительные возможности восстановления или максимальная производительность, решать вам. Рост журнала транзакций в 1С MS SQL Server