Как найти отчет в 1с по ссылке
Мы уже познакомились с таким понятием, как объект в 1С , следующим шагом будет логично познакомиться с таким понятием, как ссылка в 1С.
Ссылка указывает на данные экземпляра объекта, но не хранит их, т.е. получив ссылку на конкретный экземпляр объекта, мы сможем узнать всю информацию об экземпляре этого объекта, но не сможем внести какие-нибудь коррективы в эту информацию.
Мы помним, что в платформе 1С 8.3. существуют три вида объектов. Это объекты метаданных, общие объекты и универсальные коллекции значений.
Так вот, ссылка может быть только у объектов метаданных.
Замечу что, ссылка указывает не на сам объект, а на экземпляр объекта. Хотя, очень часто употребляют выражения «ссылка объекта», «ссылка на объект» и т.п.
Все ссылки объектов имеют тип СправочникСсылка. , ДокументСсылка. и т.д.
Ссылку можно использовать в качестве переменной, и также ссылку можно указывать, как реквизит других объектов метаданных.
Например, в моей конфигурации есть справочник Контрагенты.
А также какой-то документ, пусть будет Оплата. И я могу какому-то реквизиту документа Оплата присвоить тип — ссылка на справочник Контрагент.
Это значит, теперь в документе Оплата можно хранить информацию о контрагенте, который сделал оплату.
Если мы используем ссылку в качестве реквизита какого-то объекта, то при редактировании экземпляра, на который указывает ссылка, сам реквизит не изменится.
Поясню на примере. Я выше создал документ Оплата и реквизит Оплативший для этого документа с типом СправочникСсылка.Контрагенты.
Если я переименую элемент справочника Контрагенты.
Затем, зайду обратно в выше созданный документ Оплата, то увижу, что отображение контрагента в реквизите поменялось автоматически.
Что это значит? Это не значит, что реквизит Оплативший элемента и сам элемент справочника Номенклатура поменялся автоматически. Нет, это значит, что данный реквизит хранит указатель на экземпляр объекта, который отображается посредством наименования. Поменяли наименование, поменялось только отображение, если бы поменяли какой-нибудь другой реквизит справочника Контрагенты, то пользователь бы ничего не заметил.
Получить ссылку 1С
Каким образом программно получить ссылку на экземпляр объекта, который уже есть в базе?
Сделать это можно несколькими способами: найти по коду, найти по наименованию, найти по реквизиту и найти по нескольким реквизитам через запрос. Я рассмотрю первые два метода.
Для демонстрации этих методов, на основной форме документа Оплата я создам команду «Установить контрагента», которую размещу в командной панели формы.
При выполнении этой команды я буду в поле Оплативший записывать определенного контрагента. Для этого я создам обработчики команды на клиенте и на сервере.
Первый способ получения ссылки: найти по коду, для поиска по коду необходимо использовать функцию менеджера объекта НайтиПоКоду.
Функция НайтиПоКоду вернёт ссылку на экземпляр объекта справочник Контрагенты, которому соответствует код 000000002. Почему мы задали код в виде строки, а не в виде цифры, например? Чтобы понять это, нужно открыть непосредственно редактор справочника Контрагенты в конфигураторе, перейти на закладку «Данные» и посмотреть, какой тип кода у этого справочника.
Тип кода у справочника Контрагенты — строка, поэтому код мы ищем по строковому значению.
Таким образом, данный код:
возвращает ссылку на справочник Контрагенты, код у которого 000000002. Если такой нет, возвращается пустая ссылка (о них ниже), если с таким кодом несколько элементов, то возвращается один из них, какой конкретно — предугадать невозможно, платформа выберет элемент по своим внутренним идентификаторам.
Рассмотрим синтаксис этой функции для менеджера справочника:
Код – непосредственно тот код, по которому мы ищем наш элемент;
ПоискПоПолномуКоду — если стоит параметр Истина, то поиск будет вестись по кодам всей иерархии, т.е. Вам необходимо будет указывать код каждой группы, куда входит элемент через флеш. Например, так: 001/005/110, где слева будет располагаться самая верхняя группа, а справа непосредственно код элемента.
Данное поле необязательно, по умолчанию – Ложь;
Родитель – для иерархических справочников можно указать группу, тогда поиск будет вестись внутри группы. Данное поле необязательно;
Владелец – для подчиненных справочников можно указать владельца, тогда поиск будет вестись только среди элементов, подчиненных данному владельцу. Данное поле необязательно.
Второй способ получения ссылки: найти по наименованию, для поиска по наименованию необходимо использовать функцию менеджера объекта НайтиПоНаименованию.
Этот способ можно применить только для тех объектов, у которых имеется стандартный реквизит Наименование.
Например, у справочников этот реквизит имеется.
А у документов его нет.
В случае этой функции, поиск ведется по тому значению, которое в поле Наименование объекта
Синтаксис функции для менеджера справочника следующий:
«Наименование» – непосредственно то наименование, по которому мы ищем наш элемент;
«ТочноеСоответствие» — если стоит параметр Ложь, то поиск будет вестись не точно, т.е. когда левая часть наименования элемента и строка поиска будут совпадать (например, Металл и Металл 01), то поиск выдаст результат. Если стоит Истина, то будут найдены только те элементы, наименование которых будет точно совпадать со строкой поиска.
Данное поле необязательно, по умолчанию – Ложь.
Помните это, что по умолчанию поиск ведется не точно;
Параметры «Родитель» и «Владелец» точно такие же, как для процедуры НайтиПоКоду.
Пустая ссылка 1С
У Вас уже, наверное, назрел вопрос: что будут возвращать методы НайтиПоКоду, НайтиПоНаименованию, если такой элемент справочника не был найден. Они будут возвращать Пустую ссылку. Пустая ссылка — это пустое значение какого-нибудь справочника или документа. У менеджеров справочника или документа есть методы, которые возвращают пустую ссылку соответствующих объектов.
Выглядит он так:
ПустаяНоменклатура= Справочники.Номенклатура.ПустаяСсылка();
ПустаяОплата = Документы.Оплата.ПустаяСсылка();
Переменные ПустаяНоменклатура и ПустаяОплата содержат в себе пустые ссылки на каждый объект.
Обращаю Ваше внимание, что для каждого вида справочника и каждого документа будет своя собственная пустая ссылка.
Данный метод очень удобно использовать, когда нам необходимо знать, найден ли элемент справочника по коду (названию) или нет.
ПустаяСсылка() – это метод менеджера объекта. Также есть метод ссылки объекта Пустая(), который возвращает тип булево. Истина — если это пустая ссылка. Код выше можно переделать:
Метод Пустая() удобно использовать работая в клиентском контексте (в том числе на тонком клиенте), потому что менеджер объекта это «тяжелый» объекта и с ним можно работать только в серверном контексте. Т.е. установку контрагента можно сделать таким способом:
В этом коде я получаю по наименованию ссылку на нужного контрагента, делаю это в серверном методе, поскольку обращаюсь к менеджеру справочника, записываю если он не пустой, а потом в клиентском методе проверяю, найден контрагент по такому наименованию или нет, если не найден то вывожу предупреждение.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
skype: live:di-sem
@programmist_1C
Найти отчет в конфигураторе по его названию в 1С
Задание:
Нужно доработать типовой отчет 1С "Динамика продаж".
Проблема в том что в конфигураторе 1С нет отчета с названием или синонимом "Димика продаж" .
Таких отчетов много и сейчас мы узнаем как нам найти их в конфигураторе.
Решение:
Ищем этот отчет в режиме 1с предприятие:
В конфигураторе по названию мы этот отчет не найдем:
Запустим отчет "динамика продаж" и кликнем на "получить ссылку":
Получаем ссылку на справочник - варианты отчетов.
Найдем справочник варианты отчетов :
Вот нужный справочник, найдем в нем отчет(вариант отчета) "Динамика продаж":
Открываем элемент "Динамика продаж" , на реквизите отчет нажимаем открыть:
Какая хорошая первоапрельская тема.
Спросить пользователя, если не сможет объяснить откуда он это взял - значит оно ему и не надо.
С дополнительными все проще - просто спроси у пользователя. Потому что со встроенными отчет может называться "супер отборка", а на самом деле это один из вариантов строенного отчета "мегаотчет"
(5) > что спросить?
Порядок действий, который пользователь совершал для достижения результата. Ваш К.О.
только костыль в общую форму? или этот идентификатор можно в типовой увидеть?
(11) Смотришь, куда юзверг нажал, чтобы открыть отчет. Ставишь точку останова у себя и нажимаешь на этот отчет, а дальше прыгаешь по процедурам и находишь куда обращается 1ска, чтобы его открыть. Профит.
(12) тоже вариант. Но если юзверг нажал у себя "под звездочкой", то только под его сеансом смотреть..
(12) а на будущее, умные люди придумали справку, создаешь внешний отчет и пишешь в справке, что за отчет и откуда ноги растут и будет тебе счастье
(12) это надо зайти в администрирование, установить пользователю вход по паролю
из конфигуратора выполнить запуск под пользователем .. долго и печально
(13) а как в этот список попасть из формы отчета?
(20) еще как. более того, дошли уже до такого ТЗ:
Еще есть одна задача, её решение тоже может сохранить ресурс времени, в результате ускорить в целом выполнение процессов.
Когда я получаю очередную задачу по составлению отчета, обычно я не знаю, будет это единоразовый запрос или он станет регулярным.
Я мог бы сохранять каждый вариант отчета с настройками, которые бы я для него делал, но работать с вариантами отчетов в текущем интерфейсе неудобно.
Все варианты одного отчета вываливаются неструктурированным списком, их могут быть сотни. Их уже сотни.
По названию тоже не всегда удобно ориентироваться.
Нужно сделать следующее:
Создать структурированное хранилище вариантов отчетов на месте кнопки перебора листа вариантов отчетов.
Дать возможность создавать в нем папки, называть их.
Создавать папки с автоматически сохраненными вариантами отчетов с указанием даты создания. - система может чистить те, к которым не обратился пользователь спустя некоторое время, например, в течение недели.
(21) ну ссылку справочник ВариантыОтчетов храни сбоку в каком придумаешь виде и показывай как надо :)
(17) ладно, так уж и быть научу тебя магии)
Жмякаешь на значок "Получить ссылку", копируешь ссылку на отчет.
У себя можешь создать обработку и там написать что то типа:
&НаКлиенте
(25) в форме элемента справочника ВариантыОтчетов ИзменитьФорму и галки на Родитель и группу Техническая информация
Приветствую, коллеги! В данной статье будет рассмотрена работа с объектами и ссылками в 1С 8.3, в том числе я расскажу о том, как получать объект по ссылке и наоборот – ссылку из объекта.
Ни для кого не секрет, что в системе 1С очень многое держится на привязке различных типов данных, так как главной задачей языка 1С является обработка данных, которые были получены при помощи запроса.
Чаще всего в 1С данные представляются в виде объектов, хотя бывают случаи, когда данные выступают в роли таблицы. Например, рассмотрим объект «Справочник.ИмяСправочника»: он регулирует работу с определённым справочником, но и у самого объекта есть в наличии свойства (в данном случае – это поля с данными), а также присутствуют методы.
Объект в системе 1С создаётся при помощи специального оператора «Новый», после чего используется соответствующий конструктор для создания объектов. Если у типа объекта может существовать несколько конструкторов, то конструктор для создания объекта будет избран при помощи параметров, как показано в строке программного кода ниже:
Рис. 1 Выбор конструктора объектов для создания объектов
2. Менеджеры получения объектов системы 1С
Если необходимо создать объект 1С, который будет иметь связь с базой данных, то используются особые менеджеры, а не оператор «Новый».
Для всех видов метаданных есть соответствующий менеджер объектов 1С, который осуществляет получение значения из базы с данными, опираясь на признак, либо создание новой базы. Пример кода с созданием объекта через менеджер указан ниже:
Рис. 2 Создание объекта менеджером в 1С
3. Ссылки и объекты в 1С 8.3
Работа с объектами системы 1С:Предприятие может производится при помощи ссылки на данные, либо при помощи самого объекта.
Ссылки в языке 1С – это особые данные, которые можно только считывать. А объект в языке 1С – это данные, которые можно и считывать, и менять, и записывать.
Работа с ссылками выполняется гораздо быстрее, нежели с объектами.
Чтобы получить ссылку на объект, в 1С можно воспользоваться функцией, которая имеет следующий вид:
Рис. 3 Функция, чтобы получить ссылку на объект в 1С
Чтобы получить объект по ссылке, нужно воспользоваться функцией следующего вида:
Рис. 4 Функция, чтобы получить объект по ссылке
Также его можно создать с нуля при помощи следующей функции:
Рис. 5 Вариант функции получения объекта по ссылке
4. Как получить объект по ссылке?
Пускай некоторая переменная «СсылкаНаОбъект» принадлежит какому-то типу ссылки. Это может быть справочник, документ, план по счетам и так далее. Опираясь на это, мы используем специальную функция для того, чтобы получить объект по ссылке в 1С. Выглядит она следующим образом:
Рис. 6 Использование переменной СсылкаНаОбъект
5. Получение ссылки по объекту в 1С 8.3
Рассмотрим обратную процедуру, а именно: получение ссылки из объекта. Пусть есть некоторая переменная «Объект», которая является каким-то из объектных типов, тогда функция для получения ссылки из объекта будет выглядеть так:
Рис. 7 Переменная СсылкаНаОбъект для получения ссылки по объекту
Следует отметить, что реквизит «Ссылка» в 1С может быть заполнен только во время записи самого объекта. В случае, если объект не был прописан, то и соответствующей ссылки существовать не будет.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
Приветствую, коллеги! В данной статье будет рассмотрено понятие навигационной ссылки в 1С. Я расскажу, как работать с данным типом ссылок программно, и какие существуют форматы данных ссылок.
В платформе 1С есть специальная функция – навигационная ссылка. Она служит для получения ссылки на объект в информационной базе. При помощи данной функции пользователь может делиться ссылки на документацию и объекты системы 1С. Чтобы получить навигационную ссылку, необходимо кликнуть на специальный знак вверху командной панели, как демонстрируется на скриншоте ниже:
Рис. 1 Как получить навигационную ссылку?
По данной навигационной ссылке можно открыть передаваемый объект у себя:
Рис. 2 Открытие объекта по навигационной ссылке
Данной функцией можно пользоваться лишь в управляемом приложении.
2. Использование навигационных ссылок
Рассмотрим, как происходит реализация навигационных ссылок в 1С 8.3. Для этого необходимо создать обработку: она будет рабочая и для обычного приложения, и будет делать подобие основной навигационной ссылки. В таком случае форма её обработки будет выглядеть следующим образом:
Рис. 3 Обработка для создания навигационных ссылок
В структуре метаданных будут находиться, помимо самой формы, следующие реквизиты:
· «ОбъектИБ» – у данного реквизита будет тип «Любая ссылка»;
· «СсылкаНаОбъект» – у данного реквизита будет тип «Строка», у которой будет длина 255 символов.
После того как в базе была выбрана нужная ссылка для объекта, необходимо кликнуть на «Получить ссылку», что запустит процесс формировки строки со ссылкой на объект, в которой будут содержаться данные про тип объекта, а также GUID объекта, чтобы провести однозначную идентификацию и, в последствии, открыть его. На скриншоте примера кода показана обработка для данной кнопки:
Рис. 4 Обработка для создания кнопки навигационной ссылки
Рис. 5 Код для работы навигационной ссылки
Смысл данной команды состоит в том, что текст ссылки парсится, чтобы получить тип объекта, а также уникальный идентификатор для данного объекта, после чего объект будет открыт.
По принципу, который был использован в вышепредставленной обработке, можно встроить любую командную конфигурацию, чтобы получить и открыть навигационную ссылку в форме для документации, либо справочника.
3. Форматы навигационных ссылок
Навигационные ссылки делятся на внешние и внутренние ссылки, соответственно – для использования вне платформы «1С:Предприятие» и внутри данной системы. У ссылки есть две части:
1. сетевой адрес хоста информационной базы, в котором описывается расположение базы данных в клиентском приложении. Чтобы получить данную часть ссылки, необходимо использовать метод «ПолучитьНавигационнуюСсылкуИнформационнойБазы()»;
2. внутренняя ссылка, где описывается местонахождение объекта внутри информационной системы.
В свою очередь, внутренние ссылки делятся на объект информационной базы, реквизит объекта информационной базы, реквизит табличной части объекта информационной базы, реквизит записи регистра информационной базы, запись регистра информационной базы, отчет, обработку, раздел, команду раздела и временное хранилище.
Внешняя же ссылка получается при помощи добавления к хостовому адресу внутренней ссылки. В случае, когда при помощи ссылки будет открыта форма, либо будет происходить навигация по главному окну, внешняя ссылка будет получаться по такому принципу:
Рис. 6 Внешняя навигационная ссылка на форму
Если ссылка содержит некоторый ресурс, то внешняя ссылка будет формироваться так:
Рис. 7 Внешняя навигационная ссылка с ресурсом
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
Читайте также: