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
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Вариант 1: ОкноКлиентскогоПриложения (ClientApplicationWindow)
ПолучитьНавигационнуюСсылку (GetURL)
Синтаксис:
Код 1C v 8.х
Возвращаемое значение:
Тип: Строка.
Описание: Получает навигационную ссылку в формате 1С:Предприятия на текущую форму.
Доступность: Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение.
Вариант 2: Глобальный контекст (Global context)
ПолучитьНавигационнуюСсылку (GetURL)
Синтаксис:
Код 1C v 8.х
Параметры: (обязательный)
Тип: Ссылка на объект информационной базы. Ссылка на объект. (необязательный)
Тип: Строка. Имя реквизита объекта или ресурса Регистра сведений, для которого нужно выяснить ссылку. Если это реквизит табличной части объекта, то параметр указывается как ., то есть с разделителем "." (точка).
(необязательный)
Тип: Число. Индекс строки в табличной части, в том случае если объект является реквизитом табличной части. Первая строка имеет индекс равный 0.
Возвращаемое значение: Тип: Строка.
Описание: Получает текст ссылки на объект информационной базы или его реквизит в формате 1С:Предприятия.
В первом случае принимает в качестве параметра ссылку на объект (это может быть как ссылка, так и ключ записи регистра сведений). Объектом могут быть: справочник, документ, ключ записи регистра сведений, бизнес процессы, задачи.
Во втором, в качестве параметров принимает ключ объекта (это может быть как ссылка, так и ключ записи регистра сведений) и имя реквизита (ресурса). Если нужно получить ссылку на реквизит табличной части, перед именем реквизита необходимо добавить имя табличной части и точку ".".
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание: Выполняет обращение к серверу только при получении ссылки на реквизит. При получении ссылки на объект информационной базы запрос на сервер не выполняется.
Код 1C v 8.2 УП
Получить навигационную ссылку для константы?
Вопрос: В конфигурации есть константа с типом ХранилищеЗначения для хранения изображения. Пытаюсь реализовать Загрузку и Выгрузку изображения: СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Константы.Логотип.Получить());
где СсылкаНаКартинку - реквизит формы с типом строка, а на форме есть элемент, у которого путь к данным = СсылкаНаКартинку
Возможно ли реализовать отображение картинки таким образом, или стоит хранить картинку где-либо еще?
Ответ:
Навигационную ссылку на константу получить не получится(
Получится только так:
Код 1C v 8.2 УП
т.е. в процедуру ПриСозданииНаСервере поместить картинку во временное хранилище и она там сидит пока закроете форму
Есть форма списка справочника "Сотрудники".
В нем есть реквизит "Фото", который имеет тип "СправочникСсылка.ХранилищеДополнительнойИнформации" (справочник "ХранилищеДополнительнойИнформации" по структуре полностью совпадает анологичным справочником в 1С 8.1).
В реквизиты формы списка добавил "АдресКартинки" тип "строка", в элементы добавил поле "Картинка" (вид - поле картинки) с путем к данным "АдресКартинки". Как вывести Картинку?
Ответ:
Код 1C v 8.2 УП
"Хранилище" - это "стандартный" реквизит справочника "ХранилищеДополнительнойИнформации".
Имеется регистр сведений с именем "Изображения" следующей структуры:
Измерения:
- ИдИзображения (тип - уникальный идентификатор);
Реквизиты:
- Изображение (тип - ХранилищеЗначений)
Реализовать возможность записи изображений в него, проблемы не составило. А застрял на получении навигационной ссылки на нужную запись регистра?
Ответ - Для регистра сведений первым параметром должен быть ключ записи, а не ссылка на объект.
Т.е. если есть регистр сведений ХранилищеКартинок с изменением Ном (тип справочник Ном) и ресурс Картинка (тип хранилище значений) - код для получения навигационной ссылки должен быть примерно таким:
Код 1C v 8.2 УП
Похожие FAQ
Еще в этой же категории
Полнотекстовый поиск в 1С (что это и пример использования) 23
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив область поиска до нескольких объектов Формат, функция форматирования значений 21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2" ); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2" ); // Знач Обработчики событий при записи объектов. Зачем и что за чем? 12
Программисту, имеющего немного опыта на платформе 1С 8.2, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта, а-а-а-а-аааа. Именно такое сложное чувство непонимания УстановитьСсылкуНового 11
Установить ссылку нового это специальный механизм программиста, который позволяет присваивать новому объекту нужную ссылку. В основном это задача обмена, во многих типовых обменах используется синхронизация по UID объекта. Рассмотрим этот метод на к МоментВремени, получение остатков до и после проведения 9
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения Остатков, Движений: М Посмотреть все в категории Встроенные Функции
Код 1C v 8.2 УП
Параметры:
(обязательный)
Тип: Строка.
Содержит полный путь до предопределенного значения, включая имя самого значения. Например, "ПланСчетов.Основной.Счет41".
Синтаксис описания предопределенного значения совпадает с синтаксисом оператора ЗНАЧЕНИЕ языка запросов:
..
Тип предопределенного значения> может быть:
Справочник (Catalog);
ПланВидовХарактеристик (ChartOfCharacteristicTypes);
ПланСчетов (ChartOfAccounts);
ПланВидовРасчета (ChartOfCalculationTypes);
Документ (Document) - только пустая ссылка;
Перечисление (Enum);
БизнесПроцесс (BusinessProcess) - только пустая ссылка и получение точек бизнес процесса;
Задача (Task) - только пустая ссылка.
В качестве указывается имя объекта метаданных, как оно задано в конфигураторе.
Для перечислений, определенных в конфигурации, указывается как имя соответствующего объекта метаданных типа ЗначениеПеречисления. Для всех остальных типов предопределенных значений указывается как имя предопределенного элемента данных, как оно указано в конфигураторе, или ПустаяСсылка для указания пустой ссылки.
Для точек маршрутов бизнес-процессов имя предопределенного значения имеет вид:
БизнесПроцесс..ТочкаМаршрута.
Также метод может быть использован для получения значения системного перечисления. В этом случае параметр формируется как:
.
Возвращаемое значение:
Тип: Ссылка на объект информационной базы.
Похожие FAQ
Еще в этой же категории
Как проверить ЭтоНовый() в управляемой форме? 11
Понятие ЭтоНовый() отсутствует в 8.2. Поэтому при необходимости определить, что создается новый элемент можно использовать следующую особенность управляемой формы. Как правило, любая управляемая форма содержит в себе реквизит " Объект" , поэтому Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П Заполнение реквизитов формы и объекта 6
Для реквизитов в документе обработке отчете: Объект.Реквизит = " значение" ; Для реквизитов на форме: ЭтаФорма.Реквизит = " значение" ; Как получить Макет? 6
НаСервере Функция ПолучитьМакетНаСервере(ИмяМакета) ЭтотОбъект=РеквизитФормыВЗначение(" Объект" ); Макет = ЭтотОбъект.ПолучитьМакет(ИмяМакета); Возврат Макет; КонецФункции НаСервере Процедура ВывестиМакет(ТД) Макет = Обработки.ОбработкаВ Как открыть внешнюю обработку или отчет программно 1С УП? 6
В версии 8.2 и старше: приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере. Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий: Посмотреть все в категории Управляемое приложение, Тонкий клиент
Вариант 1: ОкноКлиентскогоПриложения (ClientApplicationWindow)
ПолучитьНавигационнуюСсылку (GetURL)
Синтаксис:
Код 1C v 8.х
Возвращаемое значение:
Тип: Строка.
Описание: Получает навигационную ссылку в формате 1С:Предприятия на текущую форму.
Доступность: Тонкий клиент, веб-клиент, толстый клиент, внешнее соединение.
Вариант 2: Глобальный контекст (Global context)
ПолучитьНавигационнуюСсылку (GetURL)
Синтаксис:
Код 1C v 8.х
Параметры: (обязательный)
Тип: Ссылка на объект информационной базы. Ссылка на объект. (необязательный)
Тип: Строка. Имя реквизита объекта или ресурса Регистра сведений, для которого нужно выяснить ссылку. Если это реквизит табличной части объекта, то параметр указывается как ., то есть с разделителем "." (точка).
(необязательный)
Тип: Число. Индекс строки в табличной части, в том случае если объект является реквизитом табличной части. Первая строка имеет индекс равный 0.
Возвращаемое значение: Тип: Строка.
Описание: Получает текст ссылки на объект информационной базы или его реквизит в формате 1С:Предприятия.
В первом случае принимает в качестве параметра ссылку на объект (это может быть как ссылка, так и ключ записи регистра сведений). Объектом могут быть: справочник, документ, ключ записи регистра сведений, бизнес процессы, задачи.
Во втором, в качестве параметров принимает ключ объекта (это может быть как ссылка, так и ключ записи регистра сведений) и имя реквизита (ресурса). Если нужно получить ссылку на реквизит табличной части, перед именем реквизита необходимо добавить имя табличной части и точку ".".
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание: Выполняет обращение к серверу только при получении ссылки на реквизит. При получении ссылки на объект информационной базы запрос на сервер не выполняется.
Код 1C v 8.2 УП
Получить навигационную ссылку для константы?
Вопрос: В конфигурации есть константа с типом ХранилищеЗначения для хранения изображения. Пытаюсь реализовать Загрузку и Выгрузку изображения: СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Константы.Логотип.Получить());
где СсылкаНаКартинку - реквизит формы с типом строка, а на форме есть элемент, у которого путь к данным = СсылкаНаКартинку
Возможно ли реализовать отображение картинки таким образом, или стоит хранить картинку где-либо еще?
Ответ:
Навигационную ссылку на константу получить не получится(
Получится только так:
Код 1C v 8.2 УП
т.е. в процедуру ПриСозданииНаСервере поместить картинку во временное хранилище и она там сидит пока закроете форму
Есть форма списка справочника "Сотрудники".
В нем есть реквизит "Фото", который имеет тип "СправочникСсылка.ХранилищеДополнительнойИнформации" (справочник "ХранилищеДополнительнойИнформации" по структуре полностью совпадает анологичным справочником в 1С 8.1).
В реквизиты формы списка добавил "АдресКартинки" тип "строка", в элементы добавил поле "Картинка" (вид - поле картинки) с путем к данным "АдресКартинки". Как вывести Картинку?
Ответ:
Код 1C v 8.2 УП
"Хранилище" - это "стандартный" реквизит справочника "ХранилищеДополнительнойИнформации".
Имеется регистр сведений с именем "Изображения" следующей структуры:
Измерения:
- ИдИзображения (тип - уникальный идентификатор);
Реквизиты:
- Изображение (тип - ХранилищеЗначений)
Реализовать возможность записи изображений в него, проблемы не составило. А застрял на получении навигационной ссылки на нужную запись регистра?
Ответ - Для регистра сведений первым параметром должен быть ключ записи, а не ссылка на объект.
Т.е. если есть регистр сведений ХранилищеКартинок с изменением Ном (тип справочник Ном) и ресурс Картинка (тип хранилище значений) - код для получения навигационной ссылки должен быть примерно таким:
Код 1C v 8.2 УП
Похожие FAQ
Еще в этой же категории
Полнотекстовый поиск в 1С (что это и пример использования) 23
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив область поиска до нескольких объектов Формат, функция форматирования значений 21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2" ); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2" ); // Знач Обработчики событий при записи объектов. Зачем и что за чем? 12
Программисту, имеющего немного опыта на платформе 1С 8.2, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта, а-а-а-а-аааа. Именно такое сложное чувство непонимания УстановитьСсылкуНового 11
Установить ссылку нового это специальный механизм программиста, который позволяет присваивать новому объекту нужную ссылку. В основном это задача обмена, во многих типовых обменах используется синхронизация по UID объекта. Рассмотрим этот метод на к МоментВремени, получение остатков до и после проведения 9
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения Остатков, Движений: М Посмотреть все в категории Встроенные Функции
Никогда не сталкивался с такой задачей, а вот понадобилось. Перелопатил интернет, везде одни и те же инструкции как получить ссылку незаписанного документа, но не работатет. Платформа 8.3.9, Надо получить ссылку нового создаваемого документа Приходная накладная, Модуль объекта, код:
Голову уже сломал. СсылкаДок и НашаСсылка возвращают <Объект не обнаружен>Что делаю не так?
Объект>Добавлено через 3 минуты
Возможно, важное уточнение. Все это делаю в расширении
Из одного документа получить данные табличной части другого документа
Добрый день. Сразу оговорюсь 1С только начал изучать, поэтому просьба помидорами не закидывать. .
Получить данные печатающегося документа - имя документа и число страниц
Нужно дописать дополнение, схема состоит в чём: открываем простой word документ и ставим на.
Открыть ссылку из документа в другом браузере
Доброе время, В документе есть ссылки, по нажатию на них Ctrl+ЛКП, сылка открывается в Интернет.
Скачивание документа с облака, имея ссылку
Есть ссылка на скачивание, которая копируется с прямо из браузера. Например: .
Так объект еще не записан в базу, поэтому и не обнаружен.
Что возвращает НашаСсылка.УникальныйИдентификатор()?
Tklwegsd, Только толку никакого. Читаю в инструкции: Иногда надо что-то сделать с еще незаписанным документом в базе. Например, сделать запись в регистр сведений. и далее инструкция. Именно мой случай. Надо сделать запись в регистр сведений. Делаю. И в регистре уже после записи приходной благополучно вместо ссылки на приходную -
Tklwegsd, Точно! Идентификаторы совпадают. Значит как-то по другому надо писать в регистр
Я получаю возврат НашаСсылка и ее записываю в регистр, результат записи Объект не обнаружен. Как тогда писать в регистр?
Решение
Попробовал так, все работает. Ссылка в регистре в итоге связывается с документом.
Это модуль документа:
Tklwegsd, Не получилось у меня. Возможно из-за того, что для моей задачи нельзя писать в регистр в стандартных обработчиках (надо передавать на объект ТЗ, созданную в расширении). Покумекаю сейчас, что к чему. Задам вопросы.
Добавлено через 2 минуты
Да. Смотрю идентификатор полученный до записи дока, потом уже у реальной ссылки, совпадают. Но в регистре запись с необнаруженным объектом
Думаю, в регистр попадает ссылка с другим идентификатором.
Tklwegsd, Все. Понял почему. Я передаю на объект ТЗ из которой делаются записи в регистр из обработчика формы ПередЗаписьюНаСервере и в той же процедуре на объекте пытаюсь установить ссылку, которая появится только после отработки обработчика объекта ПередЗаписью. Т.е. ДА если делать все в ПриЗаписи - должно работать. В моем случае - нет Остается понять возможно ли в ПриЗаписи передать как-то НоваяСсылка. ТЗ не объект, создана в расширении, обратиться к ней из модуля объекта на прямую не получится. Что-то можно придумать?
Добавлено через 3 минуты
Только дошло (((. ПриЗаписи и так, без ПолучитьСсылку() должно все работать, док уже записан в БД и получил реальную ссылку
Добавлено через 5 минут
Передавать НоваяСсылка или ТЗ надо в ПередЗаписью. Задача невыполнима?
А почему бы все не сделать в обработчике события ПриЗаписиНаСервере?
Документ уже записан (не нужны танцы с бубном для получения ссылки), процедура выполняется в единой транзакции записи документа (если что-то пойдет не так, будут отменены все изменения в базе данных).
Tklwegsd, Так и было сделано и без регистра. Смысл задачи - корректировка движений документа. Все работало , но с критическим НО. Работает только, если все делается (изменение, проведение) из формы документа. Если кто-то перепроведет из формы списка или просто групповое перепроведение или закрытие месяца - все слетает. Надо сделать, чтобы таблицы движений заполнялись нужными данными еще до обработчика ОбработкаПроведения. Ну а данные для этих таблиц брались из регистра сведений.
Для уже записанного документа с правильными данными, проблем нет. Надо как-то заставить сделать нужную запись в регистр при создании документа
Добавлено через 52 секунды
Tklwegsd, А как в ПРиЗаписи передать необъектную таблицу или НоваяСсылка?
Вот я болван! Чего проще, при создании нового документа запись в регистр сведений и В РЕГИСТРЫ ДВИЖЕНИЙ делать по старому - в ПриЗаписиНаСервере! А уже у записанного документа заполнять таблицы движений из записи регистра сведений и в регистры накопления записывать штатно ОбработкойПроведения. Муторно конечно, но это выход! Спасибо, Tklwegsd! Когда размышляешь один тяжелей прийти к правильному решению, другое дело - с собеседником, мысли выстраиваются по другому ))) Спасибо!
Ну а если будут еще подсказки от форумчан как оптимальней решить эту задачу - с благодарностью приму
Добавлено через 8 минут
На форму выведена ТЗ, созданная в расширении, т.е. ТЗ не является объектом. В этой таблице некоторые данные для добавления в таблицы движений документа. Т.к. ТЗ не объект, то данные в ней НЕ сохраняются, живут пока живет форма. Чтобы их сохранить, надо записать в регистр сведений. Ключевым полем в регистре - ПриходнаяНакладная.Ссылка. Проблем нет с записанным доком, все можно записать в регистр. При создании дока Приходная накладная, получить ссылку незаписанного можно только на объекте, приходится ТЗ передавать в модуль объекта, чтобы там получить ссылку незаписанного. Получается что либо надо как-то передать ТЗ в модуль объекта в стандартный обработчик ПриЗаписи или там же в ПередЗаписью передать полученную ссылку незаписанного. Путанно объяснил? ))
Добавлено через 1 час 3 минуты
))) Задачу решил по другому! Не стал связываться с получением ссылки незаписанного. В модуле формы заполнил регистр сведений нужными данными, в поле приходная.ссылка установил ПустуюСсылку(). А в модуле объекта в ПриЗаписи отбором по пустой ссылке получил нужные строки регистра и заменил пустую ссылку на ЭтотОбъект.Ссылка
Привязать ссылку к документу, что б при изменении имени документа — ссылка сама обновлялась
Как можно привязать ссылку к документу, что б при изменении имени документа - ссылка сама.
Вводим ссылку для Google документа, а получаем ее уже интегрированную через окошко iframe
Добрый день! Возникла такая задача: мы вводим общую ссылку на любой документ из Гугл диска(ее мы.
Получить ссылку на файл
Здравствуйте! Вы не могли бы мне объяснить как отсюда: $.post("txt.php", < .
Читайте также: