Что такое ключ связи в 1с
Перейти к содержимому

Что такое ключ связи в 1с

  • автор:

Что такое ключ связи в 1с

1С 8.1. УТ. В табличной части документа Заказ покупателя, есть реквизит Ключ строки. Для чего он, и как его пользовать? Спасибо.

(0) возможно, для связи с другими табличными частями
(0) Для связи с ТЧ СоставНабора. Если используешь комплекты — пригодится 🙂
(0) +(1) и вроде бы для группировки товаров-наборов

Вне зависимости от перемещения строки по таблице ее Ключ не меняется, что позволяет четко определить связь с другими таблицами (подчиненными, например)

Значит при программном вводе Реализации ТиУ на основании Заказ покупателя, ключ строки роли не играет. Так получается?

Ключи защиты 1С:Предприятия

Ключи защиты нужны для запуска платформы 1С на компьютере. Также ключи защиты называют клиентскими лицензиями или дополнительными лицензиями. Различают программные и аппаратные (USB), ключи защиты. Аппаратные ключи бывают локальными и сетевыми. Программные ключи бывают однопользовательскими и многопользовательскими. В 1С:Предприятии 8 лицензии дают возможность запустить платформу 1С (какая либо привязка к запускаемой конфигурации отсутствует, исключение составляют отраслевые конфигурации, которые защищены дополнительными ключами от фирмы разработчика). Например если на компьютере активирована однопользовательская лицензия (от любой программы 1С 8 или даже доп. лицензия на 1 рабочее место), то физически возможно будет на этом компьютере запустить любую конфигурацию (Бухгалтерия предприятия, Управление торговлей и т.д.). Поэтому в 1С:Предприятии 8 ключи защиты называют дополнительными платформенными лицензиями. В платформе 1С Предприятие 7.7 у ключей была привязка также и к запускаемой конфигурации. Например, если в компьютер вставлен ключ от конфигурации Бухгалтерия 7.7 то конфигурация Торговля и склад 7.7 уже не запустится.

Программные ключи защиты 1С:Предприятие 8

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

Чтобы активировать программную лицензию на компьютере нужен пинкод. Также понадобится регистрационный номер имеющегося у вас программного продукта 1С. Активация пинкода выполняется при помощи установленной платформы 1С. Программная лицензия привязывается к конфигурации компьютера на котором происходит активация. В случае если конфигурация компьютера поменялась, лицензия перестает работать и необходимо выполнить переактивацию программной лицензиии на этом компьютере. Все вопросы по активации лицензий пользователи могут направлять на почту lic@1c.ru.

Программная лицензия

Виды программных лицензий 1С:Предприятие 8

  • Однопользовательские лицензии позволяют запускать любое количества сеансов приложений с компьютера на котором активирована лицензия.
  • Многопользовательские лицензии дают возможность для запуска не более определенного числа сеансов приложений. Может применяться произвольное количество компьютеров. Номиналом лицензии определяется количество сеансов клиентских приложений, которые запускаются одновременно.
  • Комбинированные (комбинация группы одно-, и многопользовательской) — если однопользовательская лицензия активируется первой, то можно использовать только ее. Если многопользовательская была активирован первой, то версии для одного пользователя уже не используется.
  • Лицензия на 32-разрядный сервер дает возможность использования произвольного количества рабочих процессов rphost.exe (32-разрядных) на одном компьютере.
  • Лицензия на 64-разрядный сервер дает возможность использования произвольного числа 32 и 64-разрядных процессов rphost.exe на одном компьютере.

Лицензии многопользовательского типа могут размещаться на ПК сервера 1С, терминальном сервере или модуле расширения. На клиентском ПК размещаются только однопользовательские лицензии.

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

  • Однопользовательский режим дает возможность для запуска неограниченного числа экземпляров (сеансов) 1С:Предприятия. Такое решение удобно для бухгалтерии. Специалист в этом случае при активированной 1 однопользовательской лицензии на компьютере может запустить например: 3 базы бухгалтерии, 2 базы торговли, 3 базы зарплаты и при этом будет использоваться только 1 клиентская лицензия активированная на этом компьютере.
  • Многопользовательский режим дает возможность запускать клиентских приложений (сеансов 1С или открытых окон с 1С) в числе приобретенных лицензий.

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

Аппаратные ключи защиты 1С:Предприятие 8

Параметр XX указывает на количество лицензий

1С:Предприятие 8. Клиентская лицензия на 300 рабочих мест

Ключ на 300 пользователей. Особенности совпадают с ключами на 5, 10, 20, 50 и 100 пользователей, приведенные выше в таблице.

1С:Предприятие 8. Клиентская лицензия на 500 рабочих мест

Ключ на 500 пользователей. Особенности совпадают с ключами на 5, 10, 20, 50 и 100 пользователей, приведенные выше в таблице.

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

Маркировка USB-ключа

Как устанавливать USB ключи 1С:Предприятие 8 грамотно

Запрещается размещение на 1 компьютер более 1-го ключа USB единой серии. В случае такой установки 2-й установленный ключ будет просто не определяться системой лицензирования.

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

2 и более сетевых ключа недостаточно только лишь разнести по отдельным компьютерам. Важно произвести точную настройку менеджеров лицензий. Любой из используемых ключей должен обладать уникальным именем.

  1. На компьютере, где установлен ключ, нужно найти файл nhsrv.ini в папке с менеджером лицензий (C:\Program Files\Aladdin\HASP LM\).
  2. За имя сервера лицензий отвечает параметр NHS_SERVERNAMES, оно состоит из букв и цифр латинского алфавита, и содержит не более 7 символов. [NHS_SERVER] NHS_SERVERNAMES = NAME1 Не забудьте раскомментировать этот параметр, т.е убрать «;» перед началом строки!
  3. После нужно отредактировать файл nethasp.ini (C:\Program Files (x86)\1cv82\conf): указав адреса и имена менеджеров лицензий: [NH_COMMON] NH_TCPIP = Enabled [NH_TCPIP] NH_SERVER_ADDR = 192.168.0.10, 192.168.0.11 NH_SERVER_NAME = NAME1, NAME2

Часто достаточно в этом файле только раскомментировать параметр NH_SERVER_ADDR = и задать NETBIOS или IP-адрес компьютера, на котором имеется ключ.

С помощью программы Aladdin Monitor можно посмотреть какие ключи используются и сколько лицензий использовано.

Если подсчетом клиентских лицензий занимается сервер «1С:Предприятия», то клиентские лицензии, у которых в программе Aladdin Monitor значение колонки Timeout равно 0, будут считаться занятыми. В связи с этим не рекомендуется одни и те же многопользовательские ключи HASP использовать для одновременного получения клиентских лицензий с помощью HASP License Manager и сервера «1С:Предприятия».

Какие ошибки могут возникнуть?

Если Aladdin Monitor демонстрирует занятость большего количества лицензий, чем пользователей сети, то это ошибка провоцируется тем, что клиент аварийно завершил работу. Занятая лицензия зависает. В таких случаях служба HLServer перезапускается.

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

  1. «Не найден ключ». Эта ошибка возникает при отсутствии ключа, а также попытке применения ключа от иного продукта, является распространенной. В случае использования сетевого ключа ошибка возникает по ряду причин. Ее провоцирует отсутствии сети, ошибки в установке несетевого ключа. В некоторых случаях важно проверить, запущен ли менеджер.
  2. «Ключ не содержит лицензии». Эта ошибка возникает тогда, когда на один ПК установлено 2 ключа одной серии. Причем программа видит тот, лицензия на котором не установлена.
  3. «Превышено число лицензий». Данная ошибка возникает в тех случаях, когда количество активных сессий превышает число лицензий, указанных в ключе. В сети в этот момент могут работать 2 менеджера. Причем они обладают одинаковыми обслуживающими ключами, а также аналогичными именами.

Ошибка “Не обнаружен ключ защиты программы»

Ограничения на установку USB ключей 1С:Предприятие 8

Несколько ключей единой серии на одном ПК работать не будут! Сетевые или однопользовательские ключи ORGL8 вместе не используются.

На одном ПК могут работать ключи, например, ORGL8 и ORGL8A или ORGL8 и ORGL8B.

При условии запуска менеджера ключи доступны по сети. Одним компьютером благодаря этому может обслуживаться до 900 лицензий (ORGL8: до 100, ORGL8A: 300 и ORGL8B: 500).

На один ПК можно установить ключи сервера 1С и пользовательских лицензий.

Поиск лицензий проводится в определенном порядке.

Ключи серверного типа размещаются на тот компьютер, где имеется сервер 1С:Предприятие. Они не будут работать по сети.

Маркировка ключей от 1С:Предприятие 7.7

Изначально ключи защиты от 1С:Предприятие 7.7 выпускались в виде ключей вставлявшихся в LPT порт компьютера. Ниже приведены примеры фото локального и сетевого ключа LPT от 7.7.

В последствии 1С начало комплектовать коробки 1С:Предприятие 7.7 ключам защиты в USB варианте. Локальные ключи были фиолетовыми (USB HASP HL Pro), сетевые красными (USB HASP HL Net). Ниже пример фото.

USB ключи защиты от 1С:Предприятие 7.7

USB ключ 7.7

Маркировки однопользовательских программ 7.7

  1. «1С:Бухгалтерия 7.7» — «H4 M1 ACCNT»
  2. «1С:Зарплата и кадры 7.7» — «H4 M1 QXDXD»
  3. «1С:Торговля и склад 7.7» — «H4 M1 WRBQB»
  4. «1С:Предприятие 7.7 Комплексная» — «H4 M1 WRBQB»

Маркировки многопользовательских программ 7.7:

  1. «1С:Предприятие 7.7 Бухгалтерский учет» — «H4 Net5 ACCNT»
  2. 1С:Предприятие 7.7 Зарплата + Кадры» — «H4 Net5 QXDXD»
  3. «1С:Предприятие 7.7 Торговля + Склад» — «H4 Net5 WRBQB»
  4. «1С:Предприятие 7.7 Комплексная поставка» — «H4 Net5 WRBQB»
  5. «1С:Предприятие 7.7 Налогоплательщик» — «H4 Net5 TAXPR»
  6. «1С:Предприятие 7.7 Небольшая фирма» — «ACCNT» / «WRBQB» / «QXDXD»
  7. «1С:Предприятие 7.7 Управление распределенными информационными базами» — «H4 Net5 DISTR»
  8. «1С:Предприятие 7.7 Web-расширение» — «H4 Net5 W31CK»

Система взаимодействия

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

Система взаимодействия

Поддерживаются контекстные обсуждения, связанные с конкретными объектами приложения (документами, элементами справочников, отчетами и т. п.). При этом вся переписка сохраняется вместе с объектом приложения и отображается вместе с ним.

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

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

Система взаимодействия доступна также в мобильном клиенте «1С:Предприятия 8».

Архитектура

Механизм обсуждений реализован в клиент-серверной архитектуре. Для взаимодействия между пользователями используется отдельный программный продукт — 1С:Сервер взаимодействия. Он может быть развёрнут в Интернете или в локальной сети предприятия.

Обсуждения

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

Система взаимодействия

Во-вторых, это могут быть обсуждения, связанные с конкретными объектами данных: накладными, товарами, поставщиками и т. д. При этом вся переписка отображается в форме этих данных.

Система взаимодействия

Видеозвонки

Функциональность видеозвонков, при наличии микрофона, позволяет звонить другим пользователям и общаться с ними голосом. А при наличии веб-камер пользователи могут ещё и видеть друг друга.

Система взаимодействия

Демонстрация экрана

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

Система взаимодействия

Совместное использование прикладных решений

В рамках системы взаимодействия поддерживается одновременное использование нескольких прикладных решений. В результате пользователи, работающие в одном приложении (например, «Бухгалтерия предприятия») могут обмениваться сообщениями и видеозвонками с пользователями других приложений (например, «Управление нашей фирмой»).

Для облегчения взаимодействия пользователей, использующих несколько прикладных решений, используется программа «1С:Предприятие — оповещения и запуск».

Внешние пользователи

Реализовано в версии 8.3.20

—> К системе взаимодействия можно подключать людей, которые не являются пользователями информационных баз «1С:Предприятия». Для этого в составе сервера системы взаимодействия существует сайт, интерфейс которого аналогичен интерфейсу системы взаимодействия с некоторыми ограничениями.
Система взаимодействия
Из системы взаимодействия можно отправить внешнему участнику приглашение, приняв которое он будет переадресован на этот сайт и сможет участвовать в обсуждениях, видеозвонках и демонстрациях экрана.
Система взаимодействия
Этим способом, например:

  • сотрудник HR-отдела может проводить интервью с кандидатом непосредственно из приложения 1С (например, из «1С:Зарплата и управление персоналом»);
  • менеджер может подключать внешних пользователей (клиентов, контрагентов) к обсуждениям и видеозвонкам, проходящим в системе взаимодействия;
  • специалист-консультант может давать пояснения внешним пользователям, которые в ходе видеозвонка демонстрируют ему свой экран;

Интеграция с мессенджером Telegram и социальной сетью ВКонтакте

Взаимодействие с мессенджером Telegram осуществляется через Telegram-бота. Администратор «1С:Предприятия» должен создать такого бота в Telegram и затем зарегистрировать его в системе взаимодействия.

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

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

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

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

Интеграция с мессенджером WhatsApp

Реализовано в версии 8.3.23

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

Интеграция с произвольным приложением через механизм вебхуков (webhook)

Реализовано в версии 8.3.20

  • интернет-магазин может сообщать менеджерам-пользователям 1С о поступлении новых заказов;
  • агрегатор уведомлений из государственных органов может информировать юристов компании об изменении законодательства;

Боты

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

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

Встраивание чата системы взаимодействия в сторонний сайт

Реализовано в версии 8.3.23

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

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

Функциональность системы взаимодействия

  • поддерживается обмен файлами и картинками в сообщениях;
  • поддерживаются групповые видеоконференции;
  • поддерживаются обсуждения «один на один». Они позволяют пользователям общаться только друг с другом;
  • поддерживается история сообщений. Она позволяет увидеть сообщения из разных обсуждений за указанную дату (включая контекстные обсуждения), отобрать их по автору и выполнить поиск по тексту сообщения;
  • поддерживаются статусы пользователя (не в сети, отошел, не беспокоить, доступен);
  • в сообщениях можно использовать «смайлики». С помощью смайликов, например, можно обмениваться сообщениями без текста;
  • можно назначить альтернативное сочетание клавиш, которое будет использоваться для отправки сообщений;
  • можно редактировать и удалять сообщения, редактировать заголовки обсуждений. Редактирование обсуждений сопровождается служебными сообщениями Печатает остальным участникам обсуждения;
  • поддерживается цитирование сообщений;
  • появление нового сообщения и входящий звонок сопровождаются звуковым оповещением;
  • поддерживаются push уведомления;
  • если соединение с сервером взаимодействия отсутствовало, а потом было восстановлено, неотправленные сообщения отправляются автоматически;
  • осуществляется диагностика качества видеозвонков. Она позволяет фирме «1С» собирать дополнительную техническую информацию в тех случаях, когда возникают проблемы видеосвязи.

Система взаимодействия «1С» — обзор возможностей, примеры активации и использования

Система взаимодействия «1С» — примеры демонстрации рабочего стола и работы в облаке

Что такое ключ связи в 1с

1С 8.1. УТ. В табличной части документа Заказ покупателя, есть реквизит Ключ строки. Для чего он, и как его пользовать? Спасибо.

(0) возможно, для связи с другими табличными частями
(0) Для связи с ТЧ СоставНабора. Если используешь комплекты — пригодится ��
(0) +(1) и вроде бы для группировки товаров-наборов

Вне зависимости от перемещения строки по таблице ее Ключ не меняется, что позволяет четко определить связь с другими таблицами (подчиненными, например)

Значит при программном вводе Реализации ТиУ на основании Заказ покупателя, ключ строки роли не играет. Так получается?

Главная и подчиненная таблицы в 1С — связывание

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

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

Новый УникальныйИдентификатор;

Как раз его и будем использовать для связывания. В обе табличные части документа добавляем поле с типом УникальныйИдентификатор. После этого необходимо в модуле формы обработать несколько событий, а именно: ПриНачалеРедактирования — Табличного поля главной таблицы и Табличного поля подчиненной таблицы. ПередУдалением — Табличного поля главной таблицы для очистки связанных строк подчиненной. ПриАктивизацииСтроки — для отбора строк подчиненной таблицы. Вот и все. А теперь примеры обработчиков, кстати, они универсальны для любых решений.

Процедура ГлавнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока; Если НоваяСтрока Тогда Данные.ИД = Новый УникальныйИдентификатор; КонецЕсли; КонецПроцедуры Процедура ПодчиненнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Данные = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока; ТекДанные = ЭлементыФормы.ПодчиненнаяТаблица.ТекущаяСтрока; Если НоваяСтрока Тогда ТекДанные.ИД = Данные.ИД; КонецЕсли; КонецПроцедуры Процедура ГлавнаяТаблицаПередУдалением(Элемент, Отказ) Данные = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока; Отбор = Новый Структура("ИД",Данные.ИД); Масс = ПодчиненнаяТаблица.НайтиСтроки(Отбор); Для каждого Строка из Масс Цикл ПодчиненнаяТаблица.Удалить(Строка); КонецЦикла; КонецПроцедуры Процедура ГлавнаяТаблицаПриАктивизацииСтроки(Элемент) Данные = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока; Если Данные = Неопределено Тогда Возврат; КонецЕсли; ЭлементыФормы.ПодчиненнаяТаблица.ОтборСтрок.ИД.Значение = Данные.ИД; ЭлементыФормы.ПодчиненнаяТаблица.ОтборСтрок.ИД.Использование = истина; КонецПроцедуры

И совсем небольшое дополнение — полю ИД устанавливаем Свойство:Индексировать = индексировать. Поле Табличного Поля можно (и нужно во избежание) сделать недоступным для пользователя. Жду ваших отзывов и критики :).

Связанные табличные части (управляемые формы)

  • Image 1.jpg
  • Image 2.jpg
  • Image 3.jpg
  • Image 4.jpg
  • Image 1.jpg
  • Image 2.jpg

У нас есть 2 связанные табличные части, и нам надо, чтобы по текущей строке в одной из них мы видели только определенные строки во второй. Были бы у нас динамические списки, мы бы взяли событие «При активизации строки» и стандартный механизм отборов СКД, которая лежит в основе списка. Но вот с табличными частями так не получится. Тут нам надо будет написать несколько строк кода и использовать «ОтборСтрок», доступный для таблицы формы. Тестировалось на платформе 8.3.13.1644, будет работать и на более ранних версиях платформы.

Скачать файлы

Про «ОтборСтрок» я уже писал в недалеком прошлом поэтому не буду повторяться. Что это и для чего это используется можно изучить в статье Отборы (поиск) в табличной части либо таблице значений (управляемые формы)

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

Конфигурация состоит из двух справочников: «Контрагенты» и «Товары» и одного документа «Поступление товаров». Данный документ имеет 2 соответствующие табличные части и предназначен для получения товаров от разных клиентов в одном документе.

Визуально форма выглядит так:

Мы хотим сделать так, чтобы клиенту было удобно и он выбирая клиента видел только те товары, которые приходят от него.

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

Для нашей левой табличной части «Контрагенты» нам надо добавить следующие обработчики событий:

Нам надо при активизации строки показывать только товары, принадлежащие выбранному контрагенту (События «При активизации строки» и «При окончании редактирования») и так же отработать ситуацию удаления контрагента — нам надо удалить все товары со второй табличной части.

&НаКлиенте Процедура КонтрагентыПриАктивизацииСтроки(Элемент) ТекДанные = Элемент.ТекущиеДанные; УстановитьОтборПоКлючу(ТекДанные,Элементы.Товары,НаименованиеКлючаСвязи); КонецПроцедуры &НаКлиенте Процедура КонтрагентыПередУдалением(Элемент, Отказ) ОбщаяПроцедураУдалитьСтроки(Элемент.ТекущиеДанные,Объект.Товары,НаименованиеКлючаСвязи); КонецПроцедуры &НаКлиенте Процедура КонтрагентыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) ТекДанные = Элемент.ТекущиеДанные; ТекНаименованиеКлюча = НаименованиеКлючаСвязи; Если ТекДанные[ТекНаименованиеКлюча] <> ТекДанные[ТекНаименованиеКлюча + "Начальный"] Тогда ПерезаполнитьЗначениеКлюча(ТекДанные[ТекНаименованиеКлюча+"Начальный"],ТекДанные[ТекНаименованиеКлюча],"Товары",ТекНаименованиеКлюча); ТекДанные[ТекНаименованиеКлюча + "Начальный"] = ТекДанные[ТекНаименованиеКлюча]; КонецЕсли; УстановитьОтборПоКлючу(ТекДанные,Элементы.Товары,ТекНаименованиеКлюча); КонецПроцедуры 

Сами процедуры обработки:

&НаКлиенте Процедура УстановитьОтборПоКлючу(ТекДанные,ТекЭлем,НаименованиеКлюча) Если ТекДанные = Неопределено Тогда Возврат; КонецЕсли; // Создаем структуру отбора Отбор = Новый Структура; Отбор.Вставить(НаименованиеКлюча, ТекДанные[НаименованиеКлюча]); // Задаем фиксированную структуру отбора для таблицы формы ТекЭлем.ОтборСтрок = Новый ФиксированнаяСтруктура(Отбор); КонецПроцедуры &НаКлиенте Процедура ОбщаяПроцедураУдалитьСтроки(ТекДанные,ТекЭлем,НаименованиеКлюча) Если ТекДанные <> Неопределено Тогда МассивСтрок = ТекЭлем.НайтиСтроки(Новый Структура (НаименованиеКлюча,ТекДанные[НаименованиеКлюча])); Для Каждого СтрМассива ИЗ МассивСтрок Цикл ТекЭлем.Удалить(СтрМассива); КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервере Процедура ПерезаполнитьЗначениеКлюча (ЗначениеКлючаНачальный,ЗначениеКлюча,НаименованиеТабЧасти,НаименованиеКлюча) Если ЗначениеЗаполнено(ЗначениеКлючаНачальный) Тогда ТекЭлем = Объект[НаименованиеТабЧасти]; МассивСтрок = ТекЭлем.НайтиСтроки(Новый Структура (НаименованиеКлюча,ЗначениеКлючаНачальный)); Для Каждого СтрМассива ИЗ МассивСтрок Цикл СтрМассива[НаименованиеКлюча] = ЗначениеКлюча; КонецЦикла; КонецЕсли; КонецПроцедуры

Для правой табличной части «Товары» нам также надо обработать несколько событий:

Мы должны отклонить выбор номенклатуры если у нас нет или не выбран контрагент и автоматически заполнять значение ключа связи — в нашем случае это ссылка на контрагента. Сами процедуры:

&НаКлиенте Процедура ТоварыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) Если Элементы.Контрагенты.ТекущиеДанные = Неопределено Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если НоваяСтрока И НЕ Копирование Тогда Элемент.ТекущиеДанные[НаименованиеКлючаСвязи] = Элементы.Контрагенты.ТекущиеДанные[НаименованиеКлючаСвязи]; КонецЕсли; КонецПроцедуры 

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

&НаКлиенте Процедура ОчиститьОтбор(Команда) СнятьОтборСЭлементов(Элементы.Товары); КонецПроцедуры

Для того, чтобы учесть возможность смены самого контрагента, мы добавили в форме реквизит табличной части :

Сделали его заполнение при открытии формы и обрабатываем его изменение в коде:

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //Определим ключ связи НаименованиеКлючаСвязи = "Контрагент"; ДозаполнитьТабЧасть(); КонецПроцедуры &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) ДозаполнитьТабЧасть(); КонецПроцедуры &НаСервере Процедура ДозаполнитьТабЧасть () Для Каждого СтрТаб ИЗ Объект.Контрагенты Цикл СтрТаб[НаименованиеКлючаСвязи+"Начальный"] = СтрТаб[НаименованиеКлючаСвязи]; КонецЦикла; КонецПроцедуры 

Для большей универсальности стал использовать реквизит формы «НаименованиеКлючаСвязи», который устанавливаю 1 раз и использую потом везде.

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

Для презентации того, как можно учесть и данный случай, я добавил в конфигурацию еще один документ «ПродажаТовара», в котором в качестве ключа связи испльзуется уникальный индекс — простое число, которое уникально для каждой строки слева и привязка идет непосредственно к нему:

Механизм реализации такой абсолютно такой же.

1С:Система лицензирования и защиты конфигураций (СЛК)

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

  • надежно защитить оригинальный авторский код конфигурации, представляющий «ноу-хау» разработчика от несанкционированного использования и анализа;
  • обеспечить технически лицензирование конечного программного продукта; контролировать количество рабочих мест, в соответствии со значением в ключе лицензий при любом режиме работы «1С:Предприятия» 8.2 и 8.3 (толстый, тонкий и web клиенты);
  • гибко изменять возможности и управлять работой прикладного решения в зависимости от параметров ключа: ограничивать работу конфигурации по времени, разделять функционал на отдельно активируемые ключом части.

«1С:СЛК» предлагает к использованию разнообразные так называемые «ключи защиты» конфигурации.

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

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

  • Основной — предназначен для использования в «основных поставках» продукта.
  • Дополнительный — предназначен для увеличения количества рабочих мест, используется в «дополнительных лицензиях» к «основной поставке» продукта. Особенностью дополнительных ключей является то, что они не работают без основного ключа и обязательно должны быть подключены к тому же компьютеру, что и основной.

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

Кроме того, ключ защиты может быть аппаратным или программным.

Аппаратный ключ защиты представляет собой ключ, подключаемый в USB разъем компьютера.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *