1с 7 документ привязать к справочнику
Документ — одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и, если необходимо, корректировка.
В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, являющихся основаниями для тех или иных учетных действий или расчетов. Тем на менее, использование этого типа данных может выходить далеко за рамки простой фиксации изменений внесенных в регистры и журналы расчетов.
Структура каждого конкретного вида документа определяется при его создании в конфигураторе. У любого вида документа существует два обязательных реквизита, которые создаются автоматически — дата и номер документа. Другие реквизиты документа определяются в конфигураторе конкретно для каждого создаваемого вида документа.
В документах выделяются две основные структурные части: шапка документа и многострочная табличная часть, поэтому реквизиты документа можно подразделить на «Реквизиты шапки» и «Реквизиты табличной части».
Как правило, в шапке содержатся реквизиты, которые являются общими для всего документа. Реквизиты шапки принадлежат всему документу в целом и принимают только одно значение.
Например, в случае расчета заработной платы, документ «Больничный лист» в заголовочной части может содержать процент оплаты, сведения о сотруднике.
Многострочная (табличная) часть документа представляет собой список однотипных строк. Реквизиты табличной части принадлежат строке документа, т. е. каждая строка содержит свои собственные значения этих реквизитов.
Например, в уже упоминавшемся больничном листе табличная часть — это набор данных за прошлые расчетные периоды, предназначенные для расчета средней заработной платы.
Контекст работы с документами
В синтаксисе языка доступ к атрибутам, а также вызов методов документов зависит от контекста выполнения программного модуля.
Если конкретный документ входит (согласно локального контекста) в набор непосредственно доступных модулю значений агрегатных типов данных (см. «Виды программных модулей»), то доступ к атрибуту, вызов метода для этого документа — просто имя этого атрибута, метода с указанием необходимых параметров.
* В форме редактирования документа «Накладная» мы имеем непосредственный доступ к текущему документу (накладной). Значит, чтобы изменить номер накладной, запишем:
* В форме редактирования документа «Приказ на зачисление» мы имеем непосредственный доступ к реквизитам этого документа. Значит, чтобы записать имя нового сотрудника, пишем:
Значение документа может быть получено из других источников, например как реквизит другого документа. В этом случае обращение к атрибутам и методам такого документа представляет собой сложное выражение, где имена реквизитов разделяются точкой.
* Допустим, у документа «Счет» есть реквизит «Накладная», который имеет тип «Документ.РасхНакл». Номер накладной можно получить следующим образом:
* Допустим, значение реквизита «Приказ» справочника «ПриказыНаДоплату» имеет тип «Документ.ПриказНаДоплату». Тогда номер приказа можно получить следующим образом:
В других случаях, доступ к атрибутам, вызов методов конкретного документа происходит при помощи переменной со ссылкой на объект типа «Документ». Объект создается функцией СоздатьОбъект , ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута, метода (с указанием необходимых параметров) пишется через точку после имени ссылки.
При создании ссылки на объект типа «Документ» при помощи функции СоздатьОбъект в качестве имени документа может выступать ключевое слово Документ или полное имя вида документа.
Полное имя вида документа записывается следующим образом:
где < Имя_Документа >— имя вида документа, как он объявлен в конфигураторе.
Применение ключевого слова "Документ" (без указания вида документа) используется для организации доступа ко всему перечню документов независимо от вида. В этом случае методы ВыбратьДокументы и ПолучитьДокумент будут обрабатывать документы всех видов. Однако, для переменных, созданных таким вызовом функции СоздатьОбъект , будут недоступны процедуры поиска, выбора документа из диалога, ввода нового документа, которые подразумевают конкретный вид документа.
Англоязычный синоним ключевого слова Документ — Document .
Замечание: Следует обратить особое внимание, что переменная типа «Документ», созданная функцией СоздатьОбъект — это ссылка на список документов в отличие от переменных содержащих само значение объекта (например, переменной может быть присвоено значение реквизита справочника, который имеет тип «Документ»). Использование ссылки на список документов, созданной при помощи функции СоздатьОбъект существенно отличается от работы со значением типа «Документ». Только при работе со ссылкой на список документов разрешено изменять позицию (найти-выбрать. ) текущего элемента в списке (т. е. осуществлять позиционирование по списку документов), создавать новые, изменять и удалять существующие документы. С другой стороны, ссылка на список документов не содержит собственно значения конкретного документа, которое можно присвоить чему-либо. Однако, его всегда можно получить, используя функцию ТекущийДокумент .
Замечание. Объект, созданный при помощи функции СоздатьОбъект , изначально не определен, т. е. не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный документ) при помощи процедур НайтиДокумент , НайтиПоНомеру , ПолучитьДокумент и т. п..
// В модуле формы документа
// меняем номер обрабатываемого документа
// В других модулях имена атрибутов, процедур и функций документов
// записываются через точку после имени переменной
// со значением типа "Документ".
// создаем новый документ
// меняем номер Документа
// меняем дату документа
// создаем новую строку в спецификации документа
Позиция документа
Все документы в системе 1С:Предприятие располагаются на временной оси. Основными характеристиками расположения документа на временной оси являются дата и время документа. Дата документа доступна через атрибут ДатаДок , а работа со временем документа осуществляется при помощи методов УстановитьВремя , ПолучитьВремя и предопределенной процедуры ПриИзмененииВремениДокумента . Кроме даты и времени в системе 1С:Предприятие существует понятие позиции документа.
Позиции документа — это строковое значение специального формата длиной 32 символа. Позиция документа однозначно характеризует расположение документа на оси времени относительно других документов, т. е. позиция документа заключает в себе и дату и время (с точностью до секунды), плюс некоторые дополнительные данные, определяющие взаимное расположение документов в пределах одной секунды. Позиции документов можно сравнивать (>; <), определяя какой документ раньше, какой позже. Позиции документов можно сортировать по возрастанию или по убыванию. Кроме того, можно получить позицию точки актуальности ( ПолучитьПозициюТА ) и позицию границы последовательности ( ПолучитьПозицию ). Позицию документа можно получить при помощи метода Позиция .
Многие методы могут в качестве парамера воспринимать кроме документа или даты позицию документа.
СформироватьПозициюДокумента, РазобратьПозициюДОкумента, ПолучитьПозициюТА, ПолучитьПозицию, ВыбратьДокументы, ВыбратьПодчиненныеДокументы, ВыбратьПоЗначению, РассчитатьРегистрыНа, РассчитатьРегистрыПо, УстановитьТАна, УстановитьТАпо, ВыбратьДвижения, ВыбратьДвиженияСОстатками, ВыполнитьЗапрос, Рассчитать, ВыбратьОперации, ВыбратьОперацииСПроводками, ВыбратьПоЗначению
Атрибуты документов
НомерДок
Англоязычный синоним:
При помощи атрибута НомерДок можно получать и задавать значение номера выбранного документа.
Основание = Вид() + " № " + СокрП(НомерДок) + " от " + ДатаДок;
ДатаДок
Англоязычный синоним:
Атрибут ДатаДок задает значение даты выбранного документа.
// устанавливаем дату документа
Значение реквизита документа.
Идентификатор реквизита документа, как он задан в конфигураторе.
Атрибут < Реквизит >задает значение реквизита текущего документа. В тексте программного модуля используется идентификатор конкретного реквизита документа, созданного в конфигураторе. Реквизиты многострочной части документа имеют смысл только при выбранной строке многострочной части документа.
// предопределенная процедура ввода нового документа
// ТипСотр, Оклад — реквизиты документа
// Установим дату документа
НомерСтроки
Англоязычный синоним:
Атрибут НомерСтроки задает числовое значение номера строки многострочной части выбранного документа. Данный атрибут имеет смысл только при выбранной строке. Присвоение строке нового номера передвигает строку в многострочной части документа.
Пока ПолучитьСтроку() > 0 Цикл
Операция
Атрибут « Операция » предназначен для обращения к бухгалтерской операции документа.
Англоязычный синоним:
Атрибут « Операция » документа используется только в случае, если установлена компонента «Бухгалтерский учет» и только для тех видов документов, для которых в конфигурации установлен признак «Бухгалтерский учет». Он предназначен для обращения к операции документа. Данный атрибут не используется как самостоятельное значение, а позволяет обращаться к атрибутам и методам операции. Описание атрибутов и методов операции см. в разделе «Работа с операциями и проводками».
В бухгалтерии часто приходится поднимать оригиналы документов, но не всегда это удобно делать: документы сшиты, где-то завалены, находятся в другом отделе, филиале и т.д.
Чтоб облегчить доступ к первичке у нас было решено все документы сканировать (перечень утвержден приказом) и привязывать к 1С. Из удаленных филиалов файлы пересылались в головное по ftp.
В результате внедрения центральная бухгалтерия получила возможность оценивать правильность отражения документов в учете филиалов, подготавливать копии документов для камеральных проверок, делать копию любых документов, смотреть расчеты к бух.справкам и т.д.
Описание программы:
Программа является дополнением к типовой 1С Бухгалтерии 7.7. Она позволяет привязывать к любым документам конфигурации, а так же к справочникам "Контрагенты" и "Договоры" внешние файлы: сканированные копии документов, расчеты из Excel, справки и др. документы из Word, и т.д.
Для установки программы надо добавить в конфигурацию:
Справочники: "_ОригиналыДокументов", "_ВидыОригиналовДокументов"
Обработки: "_ОригиналыДокументов", "_ОригиналыДокументовДобавление"
Добавить кнопку "Оригиналы" и соответствующую процедуру в формы справочников "Контрагенты" и "Договоры".
Добавить в меню вызов справочника "Оригиналы документов"
Основная обработка "Оригиналы документов" вызывается из документов по кнопке "Действия", из справочников по отдельной соответствующей кнопке. Обработка позволяет просматривать прикрепленные файлы (во внешнем приложении), добавлять новые, удалять старые, редактировать наименование и вид документа, отбирать документы по виду и контрагенту.
Ссылки на файлы хранятся в справочнике "Оригиналы документов".
Все привязанные файлы копируются в отдельный каталог "CopyDoc" внутри базы и переименовываются, что защищает их от случайного удаления пользователем.
Дополнительно эти же файлы копируются в каталог "CopyDoc/Send" - это сделано у нас для того чтоб отслеживать новые добавленные файлы для отправки в головное предприятие. После отправки файлы удалялись.
Я являюсь автором идеи, структуры и т.д. программы. Код писал штатный программист.
Не подскажите, как можно реализовать :
Есть самописная конфигурация, 8.3 на упр формах, в ней есть справочник, к примеру "Организации".
Надо реализовать прикрепление к элементам его произвольное количество файлов ( текст, аудио . )
Правильно я понимаю, что можно сделать в справочнике табличную часть, добавить в нее реквизит "Файл" к примеру с типом "Хранилище значений" и дальше прописывать процедуры/кнопки загрузить, выгрузить . ?
Типового ничего нет ?
нетиповая конфигурация, т.е. создали конфу для разработки, добавили в нее несколько справочников, пару документов, несколько отчетов по ним . Все.
а что такое бсп и как ее курить ? :)
база лежит кстати в 1сном облаке.
(8) да это я врубился уже что это - поставил - как-то там все муторно и много :( стар наверно я уже для такого )
(9) Почему бы и нет. Если не планируется дофига жирных файлов крепить и если не 100 человек в базе работает
БСП хороша тем,что это стандарт,то есть,предполагается,что любой программист знает,как оно работает,и если вашу конфигурацию будут поддерживать и дорабатывать посторонние программисты,то БСП для них будет знакома (если программист не с улицы),а если вы напишете свой алгоритм,то каким бы он прекрасным и удобным не был,с ним придется знакомится и программистам,и,самое главное,пользователям.
Бсп в 7ке было набором экзотических и нетривиальных архитектурных решений. Бсп в 8ке это скорее неотъемлемая часть платформы с открытым кодом.
(0) Хранить файлы в ТЧ справочника очень плохая идея. Размер справочника существенно вырастет, каждое обращение к объекту илип к файлу будет блокировать параллельное обращение к объекту или к файлу. Хранить надо в отдельном справочнике. Если подразумевается только программное обращение к файлам, то можно сделать как в (9), если нужен интерфейс для работы пользователей, то лучше БСП.
(15) в моем случае например нужно к организации прикрепить не просто список файлов, а например отдельно список звонков - т.е. файл звонка, рядом кто звонил, сотрудник, комментарий, дата звонка . дальше следующий файл - с табличной частью показалось удобнее .
чем хранение в отдельном справочнике файла уменьшит объем базы ?
Насчет БСП - правильно я понимаю, ищу в ней в конфигураторе что мне подходит и через буфер обмена копирую в свою базу ?
(16) плюс в моем случае это будет не один список файлов со звонками, второй к примеру с договорами
и по этим спискам потом делать отдельные отчеты.
в типовых на БСП возможность крепления в два клика делаться изволит.
(16) Я не писал про объем базы, я писал про объем конкретного справочника. Справочник с реально относящимися к нему данными будет весить условно 1 гигабайт, а с прикрепленными файлами 20 гб. Зачем все это лишнее тащить туда-обратно при каждой инициализации объекта?
оххх,, что не так делаю :
поставил БСП, через первое внедрение БСП выгрузил xml файл с настройками
опытка получения неинициализированного значения параметра сеанса
где я накосячил ( чую везже :) ) .
намекает на то, что в самописной конфигурации нет параметра сеанса ТекущийПользователь типа "СправочникСсылка.Пользователи". Сейчас это обычно есть в каждой конфигурации, даже самописной.
(0) Рекомендую взять типовую конфигурацию (например БП3)
И допилить в нее вашу самописку по типу расширения
(16) Мухаха. :)) ТЧ объекта - это лишняя нагрузка на систему. при каждом звонке у тебя этот объект будет перезаписываться. Уж лучше непериодический регистр сведений с измерениями организация и УИН, а в ресурсы и реквизиты можно много всего напихать
В БСП присоединенные файл хранится в справочнике,чтобы была ссылка на объект представляющий файл,а данные хранятся или в томах или в регистре двоичныеданныефайлов.
Так что регистр под данные очень понятно почему-пока данные не нужны мы читаем объект со всеми свойствами (справочник),а когда нужны,то идём за ними в регистр.
Так это никто не знает.
Для этого правила регистрации и правила конвертации пишутся
И регистр,в данном случае,рассматривается как ещё одна таблица справочника и отдельно от него не передается.
А в БСП есть такой пункт "Встраивание подстистемы работы с файлами". Когда на нее жмякаешь, предлагает выбрать каталог выгрузки, пользователя . пароль ? это для чего ?
cf-ник должен сделать ? у меня не выгружается, не нравится пользователь ? это про какого пользователя ? или это вообще о другом ?
(32) или пишет что выгруженные файлы не соответствуют актуальной конфигурации (когда например выбираю каталог со своей базой и пользователем из нее ) ?
Курс лекций
Форум
Справочник – это агрегатный тип данных, средство для работы со списками однородных элементов данных. Название и структура каждого конкретного справочника определяются при его создании в конфигураторе. У любого справочника существуют два реквизита, которые создаются автоматически – «Код» и «Наименование». Реквизиты справочников могут быть периодическими, т.е. иметь значения, связанные с датой. При изменении значения периодического реквизита старое значение сохраняется, при этом новое значение начинает действовать с указанной даты, старое – до указанной даты.
Свойства справочника редактируются в окне редактирования «Справочник». Для визуального представления справочника существуют «Форма элемента», «Форма группы» и «Формы списка» (их может быть несколько).
Если один справочник подчинен другому (задается в поле «подчинен» окна редактирования), то каждый элемент подчиненного справочника будет соответствовать элементу справочника-владельца. Для этого есть специальный реквизит «Владелец», по которому можно найти элемент справочника-владельца.
Справочник может иметь иерархическую структуру. Число уровней иерархии определяется в поле «Кол-во уровней» в окне редактирования. Для задания иерархии используется реквизит «Родитель», который и определяет, к какой группе относится элемент. Наиболее важные функции:
- ЭтоГруппа() – возвращает 1, если текущий элемент справочника – группа;
- ПринадлежитГруппе() – возвращает 1, если текущий элемент принадлежит группе ;
- Уровень() – возвращает номер уровня текущего элемента.
Глубина вложенности групп настраивается в конфигураторе и не может превышать 10 уровней.
Обычно для обработки элементов справочника используется следующая последовательность команд:
Есть несколько способов поиска элемента справочника:
В последнем случае необходимо, чтобы элементы справочника были отсортированы по этому реквизиту – в свойстве реквизита в закладке «Дополнительно» нужно поставить флажок «Сортировка».
Пример. Следующая функция выполняет поиск элемента справочника по наименованию. Если элемент с таким наименованием не найден, то создается новый элемент. Параметр «Справ» – строка с идентификатором справочника, «Наим» – наименование по которому производится поиск элемента. Функция возвращает ссылку на найденный или созданный элемент.
Для удаления текущего элемента справочника используется функция Удалить(), где может иметь значение 0 – пометка на удаление, 1 – непосредственное удаление (используется по умолчанию). Вообще непосредственное удаление не рекомендуется, из-за возможного нарушения ссылочной целостности базы данных.
Чтобы удалить помеченные на удаление объекты через систему 1С:Предприятие 7.7, нужно зайти в программу в монопольном режиме и в меню «Операции» выбрать пункт «Удаление помеченных объектов…».
Документы в системе 1С: Предприятие используются для ввода, просмотра и корректировки информации о совершаемых хозяйственных операциях. У любого документа есть три обязательных реквизита «ДатаДок», «ВремяДок», «НомерДок». Дата и время, – наиболее важные характеристики документов, так как позволяют устанавливать строгую временную последовательность совершения операций. Форма документа редактируется при нажатии кнопки «Форма».
Реквизиты шапки документа задаются в списке «Реквизиты шапки». Реквизиты табличной части задаются в списке «Реквизиты табличной части».
Для того чтобы документ формировал проводки, необходимо
- создать хотя бы один план счетов.
- поставить флажок «Разрешить проведение документа».
- поставить флажок «Бухгалтерский учет».
Формирование проводок происходит в «Модуле документа» в предопределенной процедуре «Обработка проведения».
Обычно для обработки документов используется следующая последовательность команд:
Для ввода документа используется функция «Новый()», далее заполняются реквизиты шапки документа. Для ввода новой строки документа используется функция «НоваяСтрока()» и заполняются реквизиты табличной части документа.
Для просмотра списка документов используется «Журналы документов». Создание журнала производится в конфигураторе. В диалоговой форме задаются графы – реквизиты документов, входящих в журнал. Реквизиты табличной части можно добавить в журнал только в том случае, если в свойствах реквизита в закладке «Дополнительно» стоит флажок «Итог по колонке».
В соответствии с заданием №1 из приложения 3 создать справочники и документы в новой информационной базе.
Сегодня мы рассмотрим, как реализована работа с подчиненными справочниками на уровне встроенного языка и конфигуратора.
Чтобы справочник А сделать подчиненным справочнику Б - надо в режиме Конфигуратор в свойствах справочника А в поле "Подчинен" - выбрать справочник Б. Этого будет достаточно.
При работе с подчиненным справочником появляется один важный метод: «Использовать Владельца» и важный атрибут «Владелец».
Метод «ИспользоватьВладельца» - может применяться к объектам типа «Справочник» в нескольких случаях:
1. В качестве параметра выборки. Применяется для объектов полученных с помощью функции «СоздатьОбъект», являющихся подчиненными справочниками. Метод используется ДО метода «ВыбратьЭлементы». Дальнейшая выборка элементов с помощью функции ПолучитьЭлемент() будет происходить только среди элементов подчиненного справочника, для которых владельцем является элемент, установленный методом «ИспользоватьВладельца»
2. При создании нового элемента в подчиненном справочнике метод «ИспользоватьВладельца» - устанавливает владельца создаваемому элементу.
3. Для объектов типа «Справочник», являющихся реквизитами формы (например в документе или отчете) метод «ИспользоватьВладельца» позволяет программно установить владельца, который будет использован при выборе данного реквизита.
Атрибут «Владелец» - предоставляет доступ к значению элемента сопряженного справочника, которому подчинен выбранный элемент. Важно помнить, что этот атрибут может быть изменен, но только для объектов, полученных с помощью функции «СоздатьОбъект».
Это теоретические сведения.
Рассмотрим практические примеры. Все практические примеры используют справочники «Контрагенты» - «Расчетные счета». Эти справочники есть во многих конфигурациях, и Вы без проблем сможете опробовать примеры.
Пример 1. Перебрать все элементы справочника «Контрагенты» и подчиненного ему справочника «РасчетныеСчета».
Процедура Пример1()
Контр=СоздатьОбъект("Справочник.Контрагенты");
Рсч=СоздатьОбъект("Справочник.РасчетныеСчета");
Контр.ВыбратьЭлементы();//открываем выборку контрагентов
Пока Контр.ПолучитьЭлемент()=1 цикл
Сообщить("Контрагент "+Контр.Наименование);//сообщаем того по куму будем выводить счета
рсч.ИспользоватьВладельца(контр.ТекущийЭлемент());////ВОТ ОН!
рсч.ВыбратьЭлементы();//теперь открываем выборку
Пока рсч.ПолучитьЭлемент()=1 цикл//получаем из выборки новый элемент
сообщить("_____"+рсч.Наименование+" №"+рсч.Номер);// выводим имя и номер счета
конецЦикла;
конецЦикла;
КонецПроцедуры
Пример 2. Как перебрать элементы подчиненного справочника, «не глядя» на владельца. Номера и названия счетов всех контрагентов.
Процедура Пример2()
Рсч=СоздатьОбъект("Справочник.РасчетныеСчета");
рсч.ВыбратьЭлементы(0);//теперь открываем выборку
//Ноль означает, что выбираем без учета иерархии
//это все-равно, что отключить иерархический список в меню "Действия"
Пока рсч.ПолучитьЭлемент()=1 цикл//получаем из выборки новый элемент
сообщить(+рсч.Наименование+" №"+рсч.Номер);// выводим имя и номер счета
конецЦикла;
КонецПроцедуры
Пример 3. В примере 2 кроме названия и номера счета вывести название контрагента.
Процедура Пример3()
Рсч=СоздатьОбъект("Справочник.РасчетныеСчета");
рсч.ВыбратьЭлементы(0);//теперь открываем выборку
Пока рсч.ПолучитьЭлемент()=1 цикл//получаем из выборки новый элемент
Контрагент=рсч.Владелец;//вот мы и посмотрели на владельца
сообщить(рсч.Наименование+" №"+рсч.Номер+" "+Контрагент);
конецЦикла;
КонецПроцедуры
Обратите внимание! Очень важный момент. Разница между примером 1 и примером 3 – в первом случае перебираем справочник-владелец, а во втором случае – подчиненный справочник. В первом случае все счета оказываются сгруппированы по контрагентам. Во втором случае – один контрагент может встретиться несколько раз в разных местах (у разных счетов).
Пример 4. Для выбранного в форме контрагента – создать новый расчетный счет.
Процедура Пример4()
Рсч=СоздатьОбъект("Справочник.РасчетныеСчета");
Если ПустоеЗначение(выбКонтрагент)=1 тогда//смотрим - есть ли контрагент
предупреждение("Укажите контрагента - хозяина");//если нет - ругаемся
возврат; // и уходим
конецЕсли;
рсч.ИспользоватьВладельца(ВыбКонтрагент);//используем нового контрагента как владельца
рсч.Новый();//делаем новый элемент
рсч.Наименование="Валютный"; //заполняем реквизиты
рсч.Номер=777777777777;
//.
//.
рсч.Записать();//не забываем записать!
КонецПроцедуры
Важно: бывает так, что в диалоге лежит 2 реквизита. При этом один из них подчинен другому. Например, такое есть в любой расходной или приходной накладной: реквизит «Контрагент» и реквизит «Договор» (или основание). Вы точно знаете, что договор надо выбирать из списка договоров конкретного контрагента. Подчиненность можно установить программно: Договор.ИспользоватьВладельца(Контрагент). Программно надо устанавливать в момент выбора контрагента. Но можно подчиненность установить прямо в свойствах подчиненного реквизита – в поле «Связан с» - надо написать имя реквизита-владельца. В этом случае – после выбора владельца в реквизите хозяине, в подчиненном реквизите – автоматически будет устанавливаться выборка элементов по хозяину. Пример можно посмотреть в любой расходной накладной.
Задание для самостоятельной работы.
1. Не часто, но иногда требуется подчиненные элементы перенести (или скопировать) из под одного владельца – другому владельцу. Встроенного механизма – нет. Попробуйте написаться обработку, выполняющую перенос или копирование элементов из одного подчинения в другое.
2. Для тех, кому первое задание показалось легким: попробуйте написать универсальную обработку, которая бы позволяла работать с любыми двумя справочниками – один из которых владелец, а другой подчиненный.
3. Вопрос на засыпку: что будет после выполнения следующего программного кода. Где искать подчиненные элементы? Как система отреагирует на провокацию?
Процедура Засыпка()
пусто=ПолучитьПустоеЗначение("Справочник.Контрагенты");
Рсч=СоздатьОбъект("Справочник.РасчетныеСчета");
рсч.ВыбратьЭлементы(0);//теперь открываем выборку
Пока рсч.ПолучитьЭлемент()=1 цикл//получаем из выборки новый элемент
рсч.Владелец=пусто;// чистим владельца
рсч.Записать(); //и записываем с ПУСТЫМ пладельцем
конецЦикла;
КонецПроцедуры
Читайте также: