Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707

Программно добавить субконто в отчет

28.03.2023, 09:44. Показов 4027. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня. Программно открываю отчет "АнализСубконтоТиповой" и пытаюсь заполнить.
Насколько понял, виды субконто заполнять тут СписокВидовСубконто..

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

Добавлено через 12 минут
Вся портянка. Вангую что видысубконто "Контрагенты" можно где то в параметры заполнить. в Итоге отрывается АнализСубконто. в отборе стоит контрагент-мой контрагент. Организация пустая. И ВидыСубконто - пусто. Хотя надо вставить "Контрагенты"

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
    ИмяОтчета = "АнализСубконтоТиповой";
    
    //Заполняем реквизиты отчета и обязательные поля (могут отличаться в зависимости от отчета) 
    ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных;
    ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("НачалоПериода" , НачалоКвартала(ТекущаяДата()));
    ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("КонецПериода"  , КонецКвартала(ТекущаяДата()));
    ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Организация"   , Объект.Организация);
    
    //Заполняем дополнительные отборы (в примере только для субконто1 и субконто2)
    НовыйОтбор                                        = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
    НовыйОтбор.ИдентификаторПользовательскойНастройки = "Отбор";    
    ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Контрагент", объект.Контрагент);
    
    //Обязателньо указываем ключ (Равным параметру "ИДРасшифровки",я указывал Имя отчета ) НастройкиРасшифровки
    НастройкиРасшифровки = Новый Структура;
    НастройкиРасшифровки.Вставить(ИмяОтчета, ПользовательскиеНастройкиКомпоновкиДанных);
    
    УсловияОтбора = Новый Структура();
    УсловияОтбора.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
    
    //Дублируем настройки (у меня в файловой без этого не открывалось)
    ОбщиеНастройки = Новый Структура();
    ОбщиеНастройки.Вставить("Объект"              , УсловияОтбора);
    ОбщиеНастройки.Вставить("НастройкиРасшифровки", НастройкиРасшифровки);
    
    //Помещаем во временное хранилище (Уид можно случайный)
    АдресХранилища = ПоместитьВоВременноеХранилище(ОбщиеНастройки, Новый УникальныйИдентификатор);
    
    //Обращаем внимания на заполнемые настройки, если вы укажете отбор = истина то затрется все выше указанные отборы ( поскольку показатели и группировки я не менял, то оставил их типоыми) 
    ЗаполнятьТиповыеНастройки = Новый Структура;
    ЗаполнятьТиповыеНастройки.Вставить("Отбор"          , Ложь);
    ЗаполнятьТиповыеНастройки.Вставить("Группирова"     , Истина);
    ЗаполнятьТиповыеНастройки.Вставить("ВыводимыеДанные", Истина);
    ЗаполнятьТиповыеНастройки.Вставить("Показатели"     , Истина);
    
    //Сами параметры для предачи на форму ("ИДРасшифровки" - в данном случаи ключ от структуры НастройкиРасшифровки , если "СформироватьПриОткрытии" будет равно Ложь то отчет откроется с ранее сохраненными настройками)     
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("ВидРасшифровки"         , 1);
    ПараметрыОтчета.Вставить("АдресНастроек"          , АдресХранилища);
    ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
    ПараметрыОтчета.Вставить("ИДРасшифровки"          , ИмяОтчета);
    ПараметрыОтчета.Вставить("РежимРасшифровки"       , Истина);
    ПараметрыОтчета.Вставить("ЗаполняемыеНастройки"   , ЗаполнятьТиповыеНастройки);
    
ФормаОтчета=получитьформу("Отчет." + ИмяОтчета + ".Форма.ФормаОтчета", ПараметрыОтчета,ЭтаФорма);
НовоеСубконто = ФормаОтчета.Отчет.СписокВидовСубконто;
НовоеСубконто.Добавить("Виды Субконто","Контрагенты");
 
 
 
 
ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма.ФормаОтчета", ПараметрыОтчета,ЭтаФорма);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2023, 09:44
Ответы с готовыми решениями:

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

V7.7 Хочу добавить субконто к счёту 702 но боюсь:)
Hello All Вопрос такой: В приходном кассовом ордере надо установить фамилию сотрудника: от кого приняты деньги. Вид: Прочие операции,...

Программно поменять отчет
Доброго времени суток. Помогите пожалуйста с программной сменой отчета, в MSDN не понял. ...

31
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
30.03.2023, 14:18  [ТС]
Студворк — интернет-сервис помощи студентам
то есть в ветке отбор есть - контрагенты ровно ТОО рога и нога. а в виды субконто нет ничего. тупо добавить и выбираешь субконто
0
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
31.03.2023, 09:42  [ТС]
Методом тыка убедился, что затык в этом.
1C
1
2
 НовыйОтбор1                                        = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
    НовыйОтбор1.ИдентификаторПользовательскойНастройки = "Отбор";
ИдентификаторПользовательскойНастройки = "Отбор" вставляет в вкладку Отбор. То есть у меня в этой вкладке и Отбор по контрагенту и программно вставляю отбор по Субконто1=Контрагенты)))).. Хотя мне необходимо вставить в первую вкладку, "Виды субконто". СписокВидовСубконто не вставляет.
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4764 / 960 / 269
Регистрация: 22.04.2013
Сообщений: 6,640
Записей в блоге: 1
31.03.2023, 14:41
так мож там не отбор идентификатор
полагаю, что вы залезли в какие-то дебри
но там где первая вкладка - там точно идентификатор равен "отбор", а не "ыуепкемкtvetsegbreteем32Ю" ?
0
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
03.04.2023, 06:50  [ТС]
Пожалуй начну с малого. В параметрах СКД отчета, нет параметра организация. Вообще нет организации. На форме есть реквизит "ПредставлениеСпискаОрганизаций", Отчет.ПредставлениеСпискаОрганизаций. Как мне подсунуть свою название компании? Отчет по идее формируется, без субконто, отбор по контрагенту, но в пользовательском режиме поле организация - пустая.

Добавлено через 23 минуты
""Крчь, LeninZhiv, ты тупица, . Крути отчет с заполненными настройками, замером производительности ищи "Параметры" при формировке отчета, смотри что в параметрах и так же заполни их при вызове формы."
Наверное я такой ответ ждал).
0
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
05.04.2023, 07:59  [ТС]
Не стал вопрос писать отдельной темой. В общем настройки заполняются, но. Вкладка группировки - почти пустая.
у меня стоит группировка - истина(насколько я понял это значит по умолчанию).
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   
    ЗаполнятьТиповыеНастройки = Новый Структура;
    ЗаполнятьТиповыеНастройки.Вставить("Отбор"          , Ложь);
    ЗаполнятьТиповыеНастройки.Вставить("Группировка"     , Истина);
    ЗаполнятьТиповыеНастройки.Вставить("ВыводимыеДанные", Истина);
    ЗаполнятьТиповыеНастройки.Вставить("Показатели"     , Истина);
    
         
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("ВидРасшифровки"         , 1);
    ПараметрыОтчета.Вставить("АдресНастроек"          , АдресХранилища);
    ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
    ПараметрыОтчета.Вставить("ИДРасшифровки"          , ИмяОтчета);
    ПараметрыОтчета.Вставить("РежимРасшифровки"       , Истина);
    ПараметрыОтчета.Вставить("ЗаполняемыеНастройки"   , ЗаполнятьТиповыеНастройки);
Но когда Вкладку Виды Субконто перезаполню(перевыберу вид субконто - контрагенты), вкладка группировка заполняется. Я неверно заполняю настроику ВидыСубконто?
0
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
05.04.2023, 08:14  [ТС]
я понял. мне надо такую таблицу собрать и подсунуть.
Миниатюры
Программно добавить субконто в отчет  
0
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
05.04.2023, 09:03  [ТС]
Ругается - Несоответсвие типов. Че не так?
1C
1
2
3
4
5
6
7
8
9
    &НаСервере
    Функция Группировка1()
        Группировка = Новый ТаблицаЗначений; 
        
        Группировка.Колонки.Добавить("Использование",Новый ОписаниеТипов("Булево"));
        Группировка.Колонки.Добавить("Поле",Новый ОписаниеТипов("Строка"));
        Группировка.Колонки.Добавить("ТипГруппировки",Новый ОписаниеТипов("ПеречислениеСсылка.ТипДетализацииСтандартныхОтчетов"));
возврат группировка;
        КонецФункции;
Вангую, возврат тоже ошибку даст. Если не ошибаюсь то ТЗ между сервером и клиентом не передается.

Добавлено через 12 минут
Нельзя называть ТЗ - Группировка. Изменил название- ошибка пропала.
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4764 / 960 / 269
Регистрация: 22.04.2013
Сообщений: 6,640
Записей в блоге: 1
05.04.2023, 09:21
круто. ещё один урок сам собой. про группировку не знал, но общее правило ессно придерживаться надо - не писать по возможности массив = новый массив. может пройдёт а может и нет
1
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
05.04.2023, 12:04  [ТС]
Yulunga, нашел статейку, через реквизит таблца значений на форме. создал ее, а как ее на клиенте получить?

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
31
32
33
34
35
36
37
38
39
40
    &НаСервере
    Функция Группировка1()
        Груп = Новый ТаблицаЗначений; 
        
        Груп.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево"));
        Груп.Колонки.Добавить("Поле", Новый ОписаниеТипов("Строка"));
        Груп.Колонки.Добавить("ТипГруппировки", Новый ОписаниеТипов("ПеречислениеСсылка.ТипДетализацииСтандартныхОтчетов"));
        
    
//Считаем, что тут вы получили таблицу значений, у которой необходимо передать данные на форму
 
 
 
 
ДобавляемыеРеквизиты = Новый Массив;
УдаляемыеРеквизиты = Новый Массив;
 
 
//Получаем уже созданную на форме Таблицу значений 1С
 
 
ИмяТФ ="ТаблицаЗначенийФормы";
 
 
ТаблицаФормы = РеквизитФормыВЗначение("ТаблицаЗначенийФормы");
 
 
Для Каждого ТекКолонка из ТаблицаФормы.Колонки Цикл
УдаляемыеРеквизиты.Добавить(ТаблицаЗначенийФормы +"." + ТекКолонка.Имя);
КонецЦикла;
 
Для Каждого ТекКолонка из груп.Колонки Цикл
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ТекКолонка.Имя, ТекКолонка.ТипЗначения, ИмяТФ));
КонецЦикла;
 
//Добавим новые, удалим старые колонки
ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
// Поместим значение в реквизит формы 1С
ЗначениеВРеквизитФормы(Груп, ИмяТФ);
;КонецФункции
0
Эксперт 1С
7175 / 1777 / 648
Регистрация: 16.01.2015
Сообщений: 7,346
05.04.2023, 13:38
LeninZhiv, Посмотри материал в трех ссылках. Очень рекомендую прочитать вдумчиво. БОльшая часть вопросов в этой теме отпадут, да и на будущее очень пригодится
https://infostart.ru/1c/articles/1098946/
https://infostart.ru/1c/articles/1179039/
https://wiki.programstore.ru/1... ojkoj/#i-3 (п.4)
1
32 / 27 / 7
Регистрация: 23.03.2022
Сообщений: 707
06.04.2023, 08:31  [ТС]
Yulunga, polax, листинг рабочего варианта. Если есть предложения по улучшению, с радостью учту.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
&НаКлиенте
Процедура Расш1_АнализСубконтоПосле(Команда)
    ПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
    ПользовательскиеОтборы = ПользовательскиеНастройки.Элементы.Добавить(Тип("ОтборКомпоновкиДанных"));
    ПользовательскиеОтборы.ИдентификаторПользовательскойНастройки = "Отбор";
    ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("НачалоПериода", НачалоГода(Объект.Дата));
    ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("КонецПериода",  ТекущаяДата());
 
    СписокСтруктурныхЕдиниц = Новый СписокЗначений;
    СписокСтруктурныхЕдиниц.Добавить(Объект.Организация);
 
    ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("СписокСтруктурныхЕдиниц", СписокСтруктурныхЕдиниц);
    ПредставлениеСпискаОрганизаций = БухгалтерскиеОтчетыКлиентСервер.ВыгрузитьСписокВСтроку(СписокСтруктурныхЕдиниц);
    ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ПредставлениеСпискаОрганизаций", ПредставлениеСпискаОрганизаций);
 
    
    ГруппировкиРасшифровки = Новый Массив();
 
    ЗаполняемыеНастройки = Новый Структура("Реквизиты, ГруппировкаДоп, ДополнительныеПоля, Показатели, Группировка, ГруппировкиРасшифровки, РазмещениеДополнительныхПолей",
                                            Истина, Истина, Истина, Истина, Истина, ГруппировкиРасшифровки, 1);
 
    СписокВидовСубконто = ПолучитьВидСубконто();
    
    ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("СписокВидовСубконто", СписокВидовСубконто);
    
    ЗаполнитьЭлементОтбораКомпоновкиДанных(ПользовательскиеОтборы,Истина,ВидСравненияКомпоновкиДанных.Равно,"Субконто1", объект.Контрагент);
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ВидРасшифровки", 2);
    ПараметрыФормы.Вставить("РазмещениеДополнительныхПолей", 1);
    ПараметрыФормы.Вставить("РежимРасшифровки", Истина);
    ПараметрыФормы.Вставить("ПользовательскиеНастройки", ПользовательскиеНастройки);
    ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
    ПараметрыФормы.Вставить("ЗаполняемыеНастройки", ЗаполняемыеНастройки);    
 
    ОткрытьФорму("Отчет.АнализСубконтоТиповой.Форма.ФормаОтчета", ПараметрыФормы,, Истина);
 
КонецПроцедуры
 &НаКлиенте
Процедура ЗаполнитьЭлементОтбораКомпоновкиДанных(ОтборНастройкиКомпоновкиДанных,Использование,ВидСрав,ИмяПоля,ЗначениеОтбора)
    НовыйЭлемент = ОтборНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    НовыйЭлемент.Использование  = Использование;
    НовыйЭлемент.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных(ИмяПоля);
    НовыйЭлемент.ВидСравнения   = ВидСрав;
    НовыйЭлемент.ПравоеЗначение = ЗначениеОтбора;
    
КонецПроцедуры
  
&НаСервере
Функция ПолучитьВидСубконто()
    
    СписокВидовСубконто = Новый СписокЗначений();
    СписокВидовСубконто.Добавить(ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконтоТиповые.Контрагенты"),"Контрагенты"); 
    СписокВидовСубконто.ТипЗначения= Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыСубконтоТиповые"); 
    Возврат СписокВидовСубконто;
    
КонецФункции
Еще раз спасибо! Yulunga, - тебе за терпение).

Добавлено через 42 минуты
попросили добавить вид субконто - договоры.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
&НаСервере
Функция ПолучитьВидСубконто()
    
    СписокВидовСубконто = Новый СписокЗначений();
    СписокВидовСубконто.Добавить(ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконтоТиповые.Контрагенты"),"Контрагенты"); 
    СписокВидовСубконто.ТипЗначения= Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыСубконтоТиповые");
    СписокВидовСубконто.Добавить(ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконтоТиповые.Договоры"),"Договоры"); 
    СписокВидовСубконто.ТипЗначения = Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.ВидыСубконтоТиповые"); 
 
    
    Возврат СписокВидовСубконто;
    
КонецФункции
это в продолжение, что все заполняется списком значений. почти все.
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4764 / 960 / 269
Регистрация: 22.04.2013
Сообщений: 6,640
Записей в блоге: 1
06.04.2023, 09:08
спасибо конечно )
но я вроде и не нервничал и не терпел ничего ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2023, 09:08

Программно сформировать отчет. УТ 11
Пытаюсь программно сформировать отчет с подчиненными группировками, в результате у меня не происходит такого, что одна группировка...

Составить отчет об ошибке программно
Однажды мне довелось работать с дампами генерируемыми с помощью objdump (и nm) и программой на платформе сложно поддающейся отладке. Они...

Выполнить программно дополнительный отчет
Всем привет. Несколько часов уже бьюсь, но движение медленное и малоэффективное... Есть ДО, прописана в...

Crystal Report, отчёт, без БД, программно
Есть такая задачка, сделать отчёт, который данные выводит не из таблицы, а заполняется программно. Если не сложно, киньте маленький...

Программно создать отчет в FastReport.NET
Добрый день. Не могу создать отчет программно в FastReport.NET. String sql = &quot;select Name from temp&quot;; DataTable dt =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru