Доброе утро!
Начну с того что я в 1С недавно и я в нем не селен, так сказать чайник еще.
Вот поставлена задача: В Документе ЗаказПокупателей в ФормеСписка нужно сделать ДеревоПодчиненности , чтобы при нажатии галочки выводилось значимое справочника.
Все что я смог сделать на данный момент - это добавить ТабличноеПоле в Форму списка и флажок. Как их связать и какие процедуры нужны для того, чтобы сделать задание? Может я не совсем корректно выразился, но походу обсуждения темы буду стараться объяснять подробнее.
Ну выручайте. Вроде сделал. Только не совсем то как хотелось бы. При нажатии галочки выводит только отдельным окном и не все содержимое, а только Заказ покупателя сумму и валюту.
Экстрасенсов, к сожалению, нету. Пора отпусков нынче.
Может,что-то уточнить нужно? Что-то не так описал?
Лично я вообще не понял какова задача.
Добавить дерево документов "Подчиненные документы" в форму списка "Заказы покупателей".В форму списка "Заказы покупателей"
Заполнение табличной части происходит по алгоритму ОбщейФормы.ФормаСтруктурыПодчиненности.
При смене документа дерево документов должно перезаполняться (очищается, а потом заполняется по текущему документу).
Включаться и отключаться отображение дерева должно по настройке в контекстном меню.
Должна быть кнопка "Отображать структуру подчиненности" тип Булево для формы.
Если кнопка нажата, то дерево документов отображается, если нет, то не отображается. Пользователь сам будет управлять.
Кнопка нужна для производительности.
Думаю, что так будет понятнее.
Теперь понятней. Только непонятно в чем конкретно вопрос? Или надо написать готовый код, который вы скопипастите и оно взлетит?
Был бы благодарен за пошаговые действия, которые мне надо сделать.
Процедура ОтображатьСтруктуруПодчиненностиПриИзменении(Элемент)
Если ЭлементыФормы.Список.ТекущиеДанные = Неопределено Тогда
Возврат
КонецЕсли;
РаботаСДиалогами.ПоказатьСтруктуруПодчиненностиДокумента(ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока);
КонецПроцедуры
Вы задаете слишком абстрактные вопросы. Поэтому за ответ на такой вопрос в виде
Помогите с кодом. Я хотел сам сделать, но у меня не получиться. Т.к. я не могу понять структуру Дерева подчиненности!
Процедура ОтображатьСтруктуруПодчиненностиПриИзменении(Элемент)
ЭлементыФормы.ТабличноеПоле.Видимость = ОтображатьСтруктуруПодчиненности;
КонецПроцедуры
Процедура СписокПриАктивизацииСтроки(Элемент)
ЭлементыФормы.ТабличноеПоле1.Значение = ПолныеПрава.ПолучитьСписокПодчиненныхДокументов(Элемент.ТекущаяСтрока.Ссылка);
ЭлементыФормы.ТабличноеПоле1.создатьколонки();
КонецПроцедуры
Что-то не то. Выдает ошибку.
{Документ.ЗаказПокупателя.Форма.ФормаСписка.Форма(99)}: Поле объекта не обнаружено (Ссылка)
ЭлементыФормы.ТабличноеПоле1.Значение = ПолныеПрава.ПолучитьСписокПодчиненныхДокументов(Элемент.ТекущаяСтрока.Ссылка);
Сделал следующим методом
Функция ПолучитьСписокПодчиненныхДокументов(ДокументОснование) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СтруктураПодчиненности.Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы(&ЗначениеКритерияОтбора) КАК СтруктураПодчиненности";
Запрос.УстановитьПараметр("ЗначениеКритерияОтбора", ДокументОснование);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
В общем все сделал. Может кому пригодиться когда нибудь.
В Общем модуле "ПолныеПрава"
Функция ПолучитьПодчиненныеДокументы(тЗаказ) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ЗначениеКритерияОтбора", тЗаказ);
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Запрос.Ссылка КАК Ссылка,
| Запрос.Ссылка.Дата КАК Дата,
| ЕСТЬNULL(Запрос.Ссылка.СуммаДокумента, 0) КАК СуммаДокумента
|ИЗ
| (ВЫБРАТЬ
| ВозвратТоваровОтПокупателя.Ссылка КАК Ссылка
| ИЗ
| Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
| ГДЕ
| ВозвратТоваровОтПокупателя.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ВозвратТоваровОтПокупателя.Ссылка
| ИЗ
| Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателя
| ГДЕ
| ВозвратТоваровОтПокупателя.ЗаказПокупателя = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ЗаказПоставщику.Ссылка
| ИЗ
| Документ.ЗаказПоставщику КАК ЗаказПоставщику
| ГДЕ
| ЗаказПоставщику.ДокументОснование = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ЗаказПоставщику.Ссылка
| ИЗ
| Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщику
| ГДЕ
| ЗаказПоставщику.Заказ = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ЗакрытиеЗаказовПокупателей.Ссылка
| ИЗ
| Документ.ЗакрытиеЗаказовПокупателей.Заказы КАК ЗакрытиеЗаказовПокупателей
| ГДЕ
| ЗакрытиеЗаказовПокупателей.ЗаказПокупателя = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| КорректировкаЗаказаПокупателя.Ссылка
| ИЗ
| Документ.КорректировкаЗаказаПокупателя КАК КорректировкаЗаказаПокупателя
| ГДЕ
| КорректировкаЗаказаПокупателя.ЗаказПокупателя = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| НалоговаяНакладная.Ссылка
| ИЗ
| Документ.НалоговаяНакладная КАК НалоговаяНакладная
| ГДЕ
| НалоговаяНакладная.ДокументОснование = &ЗначениеКритерияОтбора
| ИЛИ НалоговаяНакладная.ДокументОснование.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеПоручениеВходящее.Ссылка
| ИЗ
| Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
| ГДЕ
| ПлатежноеПоручениеВходящее.ДокументОснование = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеПоручениеВходящее.Ссылка
| ИЗ
| Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящее
| ГДЕ
| ПлатежноеПоручениеВходящее.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеПоручениеВходящее.Ссылка
| ИЗ
| Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящее
| ГДЕ
| ПлатежноеПоручениеВходящее.ДокументПланированияПлатежа = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеТребованиеВыставленное.Ссылка
| ИЗ
| Документ.ПлатежноеТребованиеВыставленное КАК ПлатежноеТребованиеВыставленное
| ГДЕ
| ПлатежноеТребованиеВыставленное.ДокументОснование = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеТребованиеВыставленное.Ссылка
| ИЗ
| Документ.ПлатежноеТребованиеВыставленное.РасшифровкаПлатежа КАК ПлатежноеТребованиеВыставленное
| ГДЕ
| ПлатежноеТребованиеВыставленное.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеТребованиеВыставленное.Ссылка
| ИЗ
| Документ.ПлатежноеТребованиеВыставленное.РасшифровкаПлатежа КАК ПлатежноеТребованиеВыставленное
| ГДЕ
| ПлатежноеТребованиеВыставленное.ДокументПланированияПлатежа = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеТребованиеПоручениеВыставленное.Ссылка
| ИЗ
| Документ.ПлатежноеТребованиеПоручениеВыставленное.РасшифровкаПлатежа КАК ПлатежноеТребованиеПоручениеВыставленное
| ГДЕ
| ПлатежноеТребованиеПоручениеВыставленное.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПлатежноеТребованиеПоручениеВыставленное.Ссылка
| ИЗ
| Документ.ПлатежноеТребованиеПоручениеВыставленное.РасшифровкаПлатежа КАК ПлатежноеТребованиеПоручениеВыставленное
| ГДЕ
| ПлатежноеТребованиеПоручениеВыставленное.ДокументПланированияПлатежа = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПриходныйКассовыйОрдер.Ссылка
| ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
| ГДЕ
| ПриходныйКассовыйОрдер.ДокументОснование = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПриходныйКассовыйОрдер.Ссылка
| ИЗ
| Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдер
| ГДЕ
| ПриходныйКассовыйОрдер.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| ПриходныйКассовыйОрдер.Ссылка
| ИЗ
| Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдер
| ГДЕ
| ПриходныйКассовыйОрдер.ДокументПланированияПлатежа = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РасходныйКассовыйОрдер.Ссылка
| ИЗ
| Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
| ГДЕ
| РасходныйКассовыйОрдер.РасшифровкаПлатежа.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.ЗаказПокупателя = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
| ИЗ
| Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.ЗаказПокупателя = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
| ИЗ
| Документ.РеализацияТоваровУслуг.ДокументыРасчетовСКонтрагентом КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.Сделка = &ЗначениеКритерияОтбора
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ
| РезервированиеТоваров.Ссылка
| ИЗ
| Документ.РезервированиеТоваров КАК РезервированиеТоваров
| ГДЕ
| РезервированиеТоваров.Заказ = &ЗначениеКритерияОтбора) КАК Запрос
|
|УПОРЯДОЧИТЬ ПО
| Дата";
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат;
КонецФункции
Процедура СписокПриАктивизацииСтроки(Элемент)
ТабличноеПоле1.Очистить();
Если ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока <> Неопределено Тогда
тСписокДокТ = ПолныеПрава.ПолучитьПодчиненныеДокументы(ЭтаФорма.ЭлементыФормы.Список.ТекущаяСтрока);
Для Каждого тСписокДок Из тСписокДокТ Цикл
НовСтр = ТабличноеПоле1.Добавить();
НовСтр.Документ = тСписокДок.Ссылка;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СтруктураПодчиненности.Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы(&ЗначениеКритерияОтбора) КАК СтруктураПодчиненности";
Это я действовал методом тыка так сказать. Я же в это деле еще н спец, поэтому пробовал методом подбора.
Ознакомтесь с http://pro1c.org.ua/index.php?s=&showtopic=4626&view=findpost&p=31321
Или посмотрите групповое проведение документов
а в посте 15 уже структурировано и урезано.
Вот + к тому заданию что было, есть еще одно:
Добавить в документ "заказ покупателя" вкладку "структура подчиненности"
На эту вкладку выводится структура подчиненности.
Структура подчиненности выводится не при открытии, а при переходе на вкладку.
Но т.к. я заболел на работе я это не могу сделать. А дома я чтобы не париться скопировал все предыдущее заданию из форума и вставил в нужные места, но оно не работает. Кто может сказать почему? Возможно что платформа не подходит?
Может. Я же и не говорю что я "про" Я учусь только.
MH.z, эта тема, по-моему, зашла в тупик. Лично я вообще запутался что сделано, а что надо сделать.
Или это только у меня так?
Ранее я писал как я сделал задание. Выложил коды и писал куда и что. Сидя дома, чтобы не писать все с нуля, я просто скопировал мною написанное Запрос в общий модуль ПолныеПрава и тело процедуры СписокПриАктивацииСтроки. И при проверке у меня ничего не сработало. Вот не могу понять почему и надеюсь на то, что мне тут подскажут причину.
Да.
а в властивостях цього елементу форми - список, заповнена необхідна подія (ПриАктивизацииСтроки) цією процедурою, тобто чи стоїть у полі ПриАктивизацииСтроки ця процедура?
Да заполнено. Проверил уже все 100 раз если не больше
Поставим вопрос по другому - что конкретно не работает? Выдает какие-то ошибки?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua