Как сделать ссылку на базу 1с

Обновлено: 07.07.2024

Ежедневно работающие в 1С коллеги не дадут соврать, что часто сталкиваемся с ситуацией, когда необходимо из браузера или почты быстро открыть документ в 1С и не в браузере, а именно в тонком или толстом клиенте. Например, согласовываем какой-то документ и хотим уведомить подписанта о том, что необходимо поставить автограф в соответствующем бланке. Следовательно, подписывающему сотруднику отправляем письмо на почту в виде напоминания. Получатель открывает уведомление и видит, что все ждут, когда появится его подпись на согласованном документе. Сразу приходится открывать тонкий клиент 1С, искать этот документ, в котором нужно поставить галочку, ставить и закрывать 1С. Согласитесь, это очень неудобно и отнимает время, которого и так не хватает. Но хочу обрадовать читателей этой статьи, выход есть! Мы в компании используем собственно разработанную программу Управление IT-отделом 8 для решения задач клиентов. Зачастую программа находится в закрытом состоянии и дабы не столкнуться с ситуацией, описанной в примере, было принято решение облегчить процесс открывания объектов базы из электронной почты одним щелчком мыши. Как известно лень – это двигатель прогресса, а программисты люди ленивые и хотят жить проще. Поэтому перейдем к разбору и покажем, как мы открываем задания (тикеты) в тонком клиенте 1С, но не ищем их, когда приходит уведомление на почту, а щелкаем по на объект 1С.

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

  • Адрес в интернете – это адрес, который используется для формирования ссылок на объекты информационной базы, доступных через публикацию в сети интернет. Другими словами, в данном реквизите указывается адрес публикации базы на веб-сервере;
  • Локальный адрес – это адрес, который используется для формирования ссылок на объекты информационной базы, доступных через публикацию в локальной сети.

Адрес файловой базы

Адрес серверной базы

Общие настройки конфигурации

Настройка Windows для открытия ссылок в тонком или толстом клиенте


Вариант реестрового файла для x86 программы.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
@="URL:e1c"
"URL Protocol"="e1c"
"EditFlags"=hex:02,00,00,00
[HKEY_CLASSES_ROOT\e1c\DefaultIcon]
@="C:\\Program Files (x86)\\1cv8\\common\\1ceunt.dll,17"
[HKEY_CLASSES_ROOT\e1c\shell] [HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\" /URL \"%1\""


Вариант реестрового файла для x64 программы.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
@="URL:e1c"
"URL Protocol"="e1c"
"EditFlags"=hex:02,00,00,00
[HKEY_CLASSES_ROOT\e1c\DefaultIcon]
@="C:\\Program Files\\1cv8\\common\\1ceunt.dll,17"
[HKEY_CLASSES_ROOT\e1c\shell] [HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files\\1cv8\\common\\1cestart.exe\" /URL \"%1\""


Стоит отметить, перед добавлением данного файла в реестр Windows необходимо убедиться в том, что по указанному пути каталогов, находится исполняемый файл 1сestart.exe. После этого сохраняем как файл реестра. Следующий шаг, это добавление данного файла непосредственно в сам реестр Windows. Для этого запускаем редактор реестра от имени администратора, нажимаем кнопку «Файл» - «Импорт», выбираем созданный файл и нажимаем открыть (Готовые реестровый файл будет прикреплен к публикации для скачивания). В принципе настройка операционной системы Windows, да и всего механизма закончена. В завершении остается только оценить работу функционала. Спасибо за внимание, удачи и успехов.

ВНИМАНИЕ. Данный функционал будет доступен, начиная с версии 3.1.7.0.

Ссылка на . базу

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

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

Существует также еще один нехитрый способ, а именно с помощью команды встроенного языка 1С - ЗапуститьПриложение("Путь"). В параметре этой команды передаются полный путь к информационной базе, а также необходимые параметры для открытия того или иного объекта. Остановимся на данном способе более подробно.

Формирование строки запуска можно разбить на следующие основные этапы:

  1. Определение пути к исполняемому файлу для запуска платформы.
  2. Выбор режима запуска.
  3. Определение пути к ИБ.
  4. Определение пути на необходимый объект или форму.

Пройдемся по каждому из этих этапов.

В первом пункте все очень просто. Платформа предоставляет глобальную команду КаталогПрограммы() для получения каталога исполняемых файлов.

Исполняемых файлов в каталоге три: 1cv8, 1cv8c и 1cv8s. Первый запускает толстый, второй - тонкий клиент соответственно. С помощью третьего можно запустить оба типа клиентов. Соответственно, используя какую то переменную, выберем для себя, как режим запуска будем использовать для второго пункта.

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

  • /S"" или /F"" - служать для формирования пути к ИБ (серверный и файловый вариант соответственно)
  • /C"" - произвольные параметры открытия

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

Изображение

Ниже представлен алгоритм разбора параметров и открытия навигационной ссылки.

Изображение

Для запуска ИБ будем использовать следующую процедуру:

Изображение

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

Для начала давайте опубликуем нужную вам базу, а только потом уже пойдем настраивать ее в IIS.

Для публикации базы, нужно открыть конфигуратор этой базы под учеткой Администратора.

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

Откроется следующее окно где необходимо нажать "Опубликовать"

Теперь переходим к созданию пользователя IIS_User. Для этого открываем " Управление компьютером ", " Локальные пользователи и группы " и во вкладке " Пользователи " создаем пользователя IIS_User, добавляем его в группу которая у вас уже точно существует IIS_IUSERS

Затем нужно дать полные права группе IIS_IUSERS к папке bin и к папке wwwroot

Проделав все не сложные манипуляции, можно переходить к настройкам IIS.

Открываем " Диспетчер служб IIS " и слева выбираем " Пулы приложений " в основном центральном окне правой клавишей мыши щелкаем по " DefaultAppPool " и выбираем " Дополнительные параметры "

В открывшемся окне во вкладке " Общие " находим " Разрешены 32-разрядные приложения ", там есть два варианта выбора

True - Ставится в случае если сервер 1с х86 (платформа 1С x86)
False - Ставится в случае е сли сервер 1с х64 (платформа 1С x64)

Теперь нужно перейти в левом окне на название вашего сервера и в центральном окне зайти в " Ограничения ISAPI и CGI " тут мы будем настраивать разрешения для обработчиков 1С.

Нажимаем справа в окне кнопку " Добавить " и прописываем пути к вашему обработчику. При это версия платформы 8.3.15.1778 у вас может отличаться от моей. Обратите внимание что прописывать путь нужно именно в определенную папку Program Files, выбор зависит от предыдущего шага.

C:\Program Files\1cv8\8.3.15.1778\bin\wsisapi.dll - Если у вас 1С x64
C:\Program Files (x86)\1cv8\8.3.13.1865\bin\wsisapi.dll - Если у вас 1С x86

Обратите внимание на " Разрешить выполнение пути расширения " галку нужно ставить обязательно если пользуетесь одной платформой, например x64, но вам так же нужно добавить еще одно ограничение и прописать путь до платформы x86 и в этом случае галку не ставить. У вас должно получиться следующее.

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

Вам необходимо справа выбрать " Добавить сопоставление сценария " и тут в появившемся окне сделать все как показано на скринах. Эту процедуру нужно повторить для *.1crs и *.1cws

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

Согласитесь, это очень неудобно и отнимает время, которого и так не хватает. Но хочу обрадовать читателей этой статьи, выход есть! Мы в компании используем собственно разработанную программу Управление IT-отделом 8 для решения задач клиентов. Зачастую программа находится в закрытом состоянии и дабы не столкнуться с ситуацией, описанной в примере, было принято решение облегчить процесс открывания объектов базы из электронной почты одним щелчком мыши. Как известно лень – это двигатель прогресса, а программисты люди ленивые и хотят жить проще. Поэтому перейдем к разбору и покажем, как мы открываем задания (тикеты) в тонком клиенте 1С, но не ищем их, когда приходит уведомление на почту, а щелкаем по на объект 1С.

Настройка конфигурации для открытия внешних ссылок

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

  • Адрес в интернете – это адрес, который используется для формирования ссылок на объекты информационной базы, доступных через публикацию в сети интернет. Другими словами, в данном реквизите указывается адрес публикации базы на веб-сервере;
  • Локальный адрес – это адрес, который используется для формирования ссылок на объекты информационной базы, доступных через публикацию в локальной сети.

Адрес файловой базы

Адрес серверной базы

Настройка Windows для открытия ссылок в тонком или толстом клиенте

Вариант реестрового файла для x86 программы.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
@="URL:e1c"
"URL Protocol"="e1c"
"EditFlags"=hex:02,00,00,00
[HKEY_CLASSES_ROOT\e1c\DefaultIcon]
@="C:\\Program Files (x86)\\1cv8\\common\\1ceunt.dll,17"
[HKEY_CLASSES_ROOT\e1c\shell] [HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\" /URL \"%1\""

Вариант реестрового файла для x64 программы.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
@="URL:e1c"
"URL Protocol"="e1c"
"EditFlags"=hex:02,00,00,00
[HKEY_CLASSES_ROOT\e1c\DefaultIcon]
@="C:\\Program Files\\1cv8\\common\\1ceunt.dll,17"
[HKEY_CLASSES_ROOT\e1c\shell] [HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files\\1cv8\\common\\1cestart.exe\" /URL \"%1\""

Стоит отметить, перед добавлением данного файла в реестр Windows необходимо убедиться в том, что по указанному пути каталогов, находится исполняемый файл 1сestart.exe . После этого сохраняем как файл реестра. Следующий шаг, это добавление данного файла непосредственно в сам реестр Windows. Для этого запускаем редактор реестра от имени администратора, нажимаем кнопку «Файл» - «Импорт», выбираем созданный файл и нажимаем открыть (Готовые реестровый файл будет прикреплен к публикации для скачивания). В принципе настройка операционной системы Windows, да и всего механизма закончена. В завершении остается только оценить работу функционала. Спасибо за внимание, удачи и успехов.

ВНИМАНИЕ. Данный функционал будет доступен, начиная с версии 3.1.7.0.

Мы уже познакомились с таким понятием, как объект в 1С , следующим шагом будет логично познакомиться с таким понятием, как ссылка в 1С.

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

Мы помним, что в платформе 1С 8.3. существуют три вида объектов. Это объекты метаданных, общие объекты и универсальные коллекции значений.

Так вот, ссылка может быть только у объектов метаданных.

Замечу что, ссылка указывает не на сам объект, а на экземпляр объекта. Хотя, очень часто употребляют выражения «ссылка объекта», «ссылка на объект» и т.п.

Все ссылки объектов имеют тип СправочникСсылка.<НазваниеОбъекта>, ДокументСсылка.<НазваниеОбъекта> и т.д.

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

Например, в моей конфигурации есть справочник Контрагенты.

Справочник в конфигурации 1С

Ссылка на справочник у реквизита документа 1С

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

Ссылка на справочник у реквизита документа 1С

Если мы используем ссылку в качестве реквизита какого-то объекта, то при редактировании экземпляра, на который указывает ссылка, сам реквизит не изменится.

Поясню на примере. Я выше создал документ Оплата и реквизит Оплативший для этого документа с типом СправочникСсылка.Контрагенты.

Если я переименую элемент справочника Контрагенты.

Элемент справочника 1С

Затем, зайду обратно в выше созданный документ Оплата, то увижу, что отображение контрагента в реквизите поменялось автоматически.

Документ 1С

Что это значит? Это не значит, что реквизит Оплативший элемента и сам элемент справочника Номенклатура поменялся автоматически. Нет, это значит, что данный реквизит хранит указатель на экземпляр объекта, который отображается посредством наименования. Поменяли наименование, поменялось только отображение, если бы поменяли какой-нибудь другой реквизит справочника Контрагенты, то пользователь бы ничего не заметил.

Получить ссылку 1С

Каким образом программно получить ссылку на экземпляр объекта, который уже есть в базе?

Сделать это можно несколькими способами: найти по коду, найти по наименованию, найти по реквизиту и найти по нескольким реквизитам через запрос. Я рассмотрю первые два метода.

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

Команда основной формы 1С

При выполнении этой команды я буду в поле Оплативший записывать определенного контрагента. Для этого я создам обработчики команды на клиенте и на сервере.

Обработчики команды 1С

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

Функция НайтиПоКоду вернёт ссылку на экземпляр объекта справочник Контрагенты, которому соответствует код 000000002. Почему мы задали код в виде строки, а не в виде цифры, например? Чтобы понять это, нужно открыть непосредственно редактор справочника Контрагенты в конфигураторе, перейти на закладку «Данные» и посмотреть, какой тип кода у этого справочника.

Тип кода справочника 1С

Таким образом, данный код:

Рассмотрим синтаксис этой функции для менеджера справочника:

НайтиПоКоду(<Код>,<ПоискПоПолномуКоду>,<Родитель>,<Владелец>)

Код – непосредственно тот код, по которому мы ищем наш элемент;

Данное поле необязательно, по умолчанию – Ложь;

Родитель – для иерархических справочников можно указать группу, тогда поиск будет вестись внутри группы. Данное поле необязательно;

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

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

Этот способ можно применить только для тех объектов, у которых имеется стандартный реквизит Наименование.

Например, у справочников этот реквизит имеется.

Стандартный реквизит Наименование справочника 1С

А у документов его нет.

Отсутствие стандартного реквизита Наименование документа 1С

В случае этой функции, поиск ведется по тому значению, которое в поле Наименование объекта

Синтаксис функции для менеджера справочника следующий:

НайтиПоНаименованию(<Наименование>,<ТочноеСоответствие>,<Родитель>,<Владелец>)

«Наименование» – непосредственно то наименование, по которому мы ищем наш элемент;

Данное поле необязательно, по умолчанию – Ложь.

Помните это, что по умолчанию поиск ведется не точно;

Параметры «Родитель» и «Владелец» точно такие же, как для процедуры НайтиПоКоду.

Пустая ссылка 1С

Выглядит он так:

ПустаяНоменклатура= Справочники.Номенклатура.ПустаяСсылка();

ПустаяОплата = Документы.Оплата.ПустаяСсылка();

Переменные ПустаяНоменклатура и ПустаяОплата содержат в себе пустые ссылки на каждый объект.

Обращаю Ваше внимание, что для каждого вида справочника и каждого документа будет своя собственная пустая ссылка.

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

Метод Пустая() удобно использовать работая в клиентском контексте (в том числе на тонком клиенте), потому что менеджер объекта это «тяжелый» объекта и с ним можно работать только в серверном контексте. Т.е. установку контрагента можно сделать таким способом:

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

Пустая ссылка в 1С

Программировать в 1С за 11 шагов

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Читайте также: