Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как загрузить ТЗ из модуляформы в реквизит отчета (тип ТЗ)?

Нужно передать таблицу значений из одной формы в другую форму. Для этого создал реквизит отчета тип - ТЗ. С помощью ЗначениеВРеквизитФормы(мТаблица,"Объект.ТабЗначВыбора");
Хочу записать мТаблица в реквизит формы, который связан с реквизитом отчета (тип ТЗ). И затем из реквизита отчета получить данную таблицу значений в другой формы? Такое возможно или лучше по другому?
Подробнее
В первой форме получаю таблицу значений и записываю в реквизит формы:
1C
1
2
3
 нТаблица = РеквизитФормыВЗначение("Объект.ТабЗначВыбора"); 
    нТаблица = мТаблица.Скопировать();
    ЗначениеВРеквизитФормы(нТаблица,"Объект.ТабЗначВыбора");
Там отладчиком посмотрел все записывается нормально.(как реквизит формы)
Затем , хочу получить данную таблицу значений из реквизита отчета(так как реквизит первой формы связан с реквизитом отчета типа ТЗ). Это для программного формирования группировки отчета. Но цикл не проходит ощущение что реквизит отчета типа ТЗ пустой.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
нТаблица = РеквизитФормыВЗначение("Отчет.ТабЗначВыбора");
    
    Для Каждого Строка Из нТаблица Цикл
        ГруппировкаПо = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
        ГруппировкаПо.Имя = Строка.Реквизиты;
        ГруппировкаПо.Использование = Истина;
 
        //созданная группировка по полю "Склад"
 
 
        ПолеГруппировки = ГруппировкаПо.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
        ПолеГруппировки.Использование      = Истина;
        ПолеГруппировки.Поле               = Новый ПолеКомпоновкиДанных(Строка.Реквизиты);
        ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;
        ПолеГруппировки.ТипДополнения      = ТипДополненияПериодаКомпоновкиДанных.БезДополнения;
 
        //добавить выводимые поля в группировке: склад и количество остаток для данной группировки
 
 
        ВыбранноеПоле = ГруппировкаПо.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
        ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(Строка.Реквизиты);
        //ВыбранноеПоле = ГруппировкаПоСкладу.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
 
        //ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
 
    КонецЦикла;
Можно ли по -другому получить ТЗ из одной формы отчета в другой форе отчета?

Добавлено через 2 минуты
Dethmontt , не подскажешь?

Добавлено через 1 минуту
GreenkA, не подскажешь?
Ответ: Dethmontt, Как передать ссылку временного хранилища из первой формы отчета во вторую (открытую) форму этого же отчета? Если есть пример буду благодарен.

Добавлено через 51 минуту
Все разобрался , передал через параметр формы методом Оповестить()

1C
1
2
3
4
5
6
7
&НаКлиенте
Процедура ВыполнитьИЗакрыть(Команда)
    АдресВХ = ВыполнитьИПоместитьНаСервере();
    мПараметр = Новый Структура("АдресВХ", АдресВХ);
    Оповестить("событие1", мПараметр, ЭтаФорма);
    ЭтаФорма.Закрыть();
КонецПроцедуры
1C
1
2
3
4
5
6
7
8
9
10
11
12
&НаКлиенте
Процедура СформироватьОтчет(Команда)
    АдресФормВХ = ЭтаФорма.АдресВХ;
    СформироватьОтчетНаСервере(АдресФормВХ);
КонецПроцедуры
 
 
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    //Вставить содержимое обработчика
    ЭтаФорма.АдресВХ = Параметр.АдресВХ
КонецПроцедуры
Вопрос: Обратиться к реквизиту отчета, обычная форма

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

Добрый день
На отчет вынес реквизит(тип строка).В предисловие отчет построен на обычном отчете продажи диаграммы и реквизит определяется из стандартной процедуры.
В обработке начало выбора,написал код

    СтандартнаяОбработка=ложь;
    
    Форма = Справочники.Контрагенты.ПолучитьФормуВыбора("ФормаВыбора", ЭтаФорма);    
    Форма.Открыть();



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

При загрузке из УТ 10 в УТ 11, возникла проблема загрузке дополнительных свойств и реквизитов.

При выгрузке из УТ 10.3 получаю структуру НабораСвойств, но там все Com объекты. Создаю новый ВидНоменклатуры, и в нех хочу указать  данные доп реквизиты, которые находятся в структуре полученной при Com выгрузке, но не могу понять как это сделать

Если просто пишу

НовыйВидНоменклатуры.НаборСвойств.ДополнительныеРеквизиты.Загрузить(НаборСвойств.ДополнительныеРеквизиты);

то не выдает ошибки и не чего не загружает, ну и это вроде понятно так как там Com - объекты, помогите, как загрузить доп реквизиты через com
Ответ: () не понял к чему, у меня уже вроде все отлажено я получаю, нужный список доп свойств, создаю нужный список доп реквизитов, но когда создаются доп реквизиты для второго вида номенклатуры, то я не могу понять как мне делать поиск в базе приемника, точное соответствия свойства и объекта к которому принадлежит
Вопрос: Розница 2.2 Нет отчета о продажах при загрузке из ККМ Offline

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

P.S. Данные из Розницы в Атол выгружаются успешно.
P.S. Ситуация одинаковая для 2-х торговых точек.
Ответ:
В Общем модуле ОфлайнОборудованиеАтолККМВызовСервера
есть функция
Код:
ОткрытьСмену() 
Вот в конце ее надо добавить:
Смены.Добавить(Смена);
Сделал в виде обработки:
Вопрос: Итоги по числовым реквизитам отчета

Здравствуйте. В собственной конфигурации есть отчет, суть которого - вывести данные о выделении, распределении и списании трудозатрат по проектам(объектам) выбранного договора. Количество выделенных и распределенных трудозатрат нужно получить итоговыми значениями на каждый объект договора, а списание сотрудниками на каждый объект разложить по месяцам и так же получить итог по каждому объекту договора. Этот отчет я сделал - все правильно, все понравилось, Но... потребовалось отдельно вывести общие итоги по всем объектам договора в целом. Приведу текст запроса и во вложениях структуры и настройки отчета.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ВЫБРАТЬ
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Договор КАК Договор,
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Объект КАК Объект,
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Подразделение КАК Подразделение,
    ЕСТЬNULL(РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.ЧасовПлан, 0) КАК ВыделеноПоРаспредВедомости,
    СУММА(ЕСТЬNULL(ОтработаноЧасовОбороты.КоличествоЧасовРасход, 0)) КАК СписаноПодразделением,
    НАЧАЛОПЕРИОДА(ОтработаноЧасовОбороты.Период, МЕСЯЦ) КАК Месяц,
    ЕСТЬNULL(ПланыПодразделений.КоличествоЧасовПриход, 0) КАК РаспределеноПодразделением
ИЗ
    Документ.РаспределительнаяВедомость.СтатьиРаспределительнойВедомости КАК РаспределительнаяВедомостьСтатьиРаспределительнойВедомости
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОтработаноЧасов.Обороты(, , Месяц, ) КАК ОтработаноЧасовОбороты
        ПО РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Объект = ОтработаноЧасовОбороты.Объект
            И РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Подразделение = ОтработаноЧасовОбороты.Подразделение
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОтработаноЧасов.Обороты КАК ПланыПодразделений
        ПО РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Объект = ПланыПодразделений.Объект
            И РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Подразделение = ПланыПодразделений.Подразделение
ГДЕ
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Договор = &Договор
    И ОтработаноЧасовОбороты.КоличествоЧасовРасход > 0
 
СГРУППИРОВАТЬ ПО
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Договор,
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Подразделение,
    РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.Ссылка.Объект,
    НАЧАЛОПЕРИОДА(ОтработаноЧасовОбороты.Период, МЕСЯЦ),
    ЕСТЬNULL(РаспределительнаяВедомостьСтатьиРаспределительнойВедомости.ЧасовПлан, 0),
    ЕСТЬNULL(ПланыПодразделений.КоличествоЧасовПриход, 0)
 
УПОРЯДОЧИТЬ ПО
    Объект
В итоге я получаю не суммы показателей в макете, а все детальные запси. Что не так делаю? помогите пожалуйста.
Ответ:
Сообщение от jediAlex
опять придется спрашивать
...опять придется отвечать
Вопрос: Ввод параметров НачалоПериода и КонецПериода с формы отчета в запрос СКД

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

У меня не получается "найти" параметры НачалоПериода и КонецПериода в СКД, чтобы передать им соответствующие значения одноименных реквизитов отчета.

Я пытаюсь поймать параметры при помощи конструкции (в модуле формы):

1C
1
2
3
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода")
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Использование = Истина;
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение = Значение реквизита формы;
Но выдается ошибка "Переменная не определена (НачалоПериода)" на первом этапе еще.

Что я делаю не так? В инете написано, что такая конструкция у всех работает. У меня нет.

P.S. При всем уважении к всем здесь присутствующим, мне хочется решить задачу именно в этом контексте. Спасибо!
Ответ: Каким образом это сделать?
Вопрос: Расширение конфигурации - макет отчета

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

Создал отчет на СКД с запросом к таблице ОстаткиИОбороты регистра бухгалтерии. Обычная оборотка (остатки на начало и конец, обороты дт и кт) по нескольким счетам и одному виду субконто.

Этот отчет имеет два варианта:
- основной: группировки счет, субконто, валюта
- по документам: группировки счет, субконто, валюта, регистратор.

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

Особенность отчета.
Параметры в запрос СКД передаются программно, в процедуре ПриКомпоновкеРезультата() в модуле объекта отчета.
Например из реквизита отчета:

Параметр = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
    Если Параметр <> Неопределено Тогда
        Параметр.Значение = НачалоПериода;
        Параметр.Использование = Истина;
    КонецЕсли;

Расшифровку вызываю по методике, описанной в

Но никак не могу считать текущий параметр "НачалоПериода". Считываю
так (взято из статьи):

&НаКлиенте
Функция ПолучитьЗначениеПераметраКомпоновщикаНастроек(КомпоновщикНастроек, ИмяПараметра)
    ИДНастройки = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра).ИдентификаторПользовательскойНастройки;
    Коллекция = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
    Если Коллекция.Найти(ИДНастройки)=Неопределено Тогда
        Возврат Неопределено;
    Иначе
        Возврат Коллекция.Найти(ИДНастройки).Значение;
    КонецЕсли;
КонецФункции

Здесь переменная ИДНастройки дает пустую строку, и соответственно, дальше  Коллекция.Найти(ИДНастройки)=Неопределено.

Подозреваю что из-за того, что параметр был передан в СКД программно.

Подскажите пожалуйста, как правильно надо?
А еще лучше, дайте аналогичный работающий пример?
Ответ: Так как получить текущее значение параметра для передачи в расшифровку?
Вопрос: Дорабатал отчет "Остатки товаров" но мои изменения не приминяются

Дорабатал отчет "Остатки товаров" в конфе БП 3.0 но мои изменения не применяются, добавил новое поле "Цена", данные вытягиваю корректно, в ресурсы добавил, на закладке "Компоновка данных" в поля тоже добавил поле Цена. В выбранных полях в варианте отчета поле Цена присутствует. Но колонка цена так в отчет и не выводится.

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

Т.е все что я делаю не применяется, уже загрузил как внешний отчет, обновил идентификаторы, колонка моя так и не появляется! Ещё и вариант отчета нельзя выбрать другой, только сохранить, что за чертовщина с этими отчетами???? Как я понял проще свой написать с нуля? Взял этот же текст запроса создал отчет на СКД все нормально выводится...

Каждый год восхищаюсь гениальными разработками программистов в фирме 1С!!!
Ответ:
'- Это еще что. Теперь ты еще пол дня с ним бегать будешь.
- Это зачем?
- А чтобы фотографию отдать'

Отправлено с моего D2502 через Tapatalk