версия 7.7: Предприятие
документ:
Оборотно-сальдова відомість по рахунку
как сделать что-бы после названия фирмы в скобках был код ОКПО? ссылки на контрагентов не вижу. код код самого документа:
Код//********************************************************************************
//* Релиз, в котором создан объект: 1.01
//* Дата последнего редактирования: 10.12.03
//* Особенности реализации:
//*********************************************************************************
//-----------------------------------------------
Перем Т;
Перем Обновить;
Перем Расшифровка;
Перем Закрыть;
Перем ВидСубконто[3], Субконто[3], ОтборСубконто[3], ПоГруппам[3], Номер[3], Уровень[3];
//-------------------------------------------------------------------------------
Процедура ЗаполнитьСписок(Сп,Вид)
КолУровней=КолУровней(Вид);
Сп.УдалитьВсе();
Если КолУровней>0 Тогда
Для Сч=1 по КолУровней Цикл
Сп.ДобавитьЗначение(Сч,"до "+Строка(Сч)+" р.");
КонецЦикла;
Сп.ТекущаяСтрока(КолУровней);
Иначе
Сп.ДобавитьЗначение(1, "всі");
КонецЕсли;
КонецПроцедуры
//********************************************************
//
Процедура ПриВыбореГлубины1()
Если спСубконто1.ТекущаяСтрока()<спСубконто1.РазмерСписка() Тогда
ПоГруппам1=1;
Форма.ПоГруппам1.Доступность(0);
Иначе
Форма.ПоГруппам1.Доступность(1);
КонецЕсли;
КонецПроцедуры // ПриВыбореГлубины1
//********************************************************
//
Процедура ПриВыбореГлубины2()
Если спСубконто2.ТекущаяСтрока()<спСубконто2.РазмерСписка() Тогда
ПоГруппам2=1;
Форма.ПоГруппам2.Доступность(0);
Иначе
Форма.ПоГруппам2.Доступность(1);
КонецЕсли;
КонецПроцедуры // ПриВыбореГлубины1
//********************************************************
//
Процедура ПриВыбореГлубины3()
Если спСубконто3.ТекущаяСтрока()<спСубконто3.РазмерСписка() Тогда
ПоГруппам3=1;
Форма.ПоГруппам3.Доступность(0);
Иначе
Форма.ПоГруппам3.Доступность(1);
КонецЕсли;
КонецПроцедуры // ПриВыбореГлубины1
//-----------------------------------------------
Процедура УстановитьВладельца(ПоВсем, РУ, Субконто)
Назначить = 0;
Если ТипЗначенияСтр(Субконто) = "Справочник" Тогда
Назначить = 1;
Если (ПоВсем = 0) И (ТипЗначенияСтр(РУ) = "Справочник") Тогда
МДСубконто = Метаданные.Справочник(Субконто.Вид());
Если МДСубконто.Владелец.Выбран() = 1 Тогда
Если МДСубконто.Владелец.Идентификатор = РУ.Вид() Тогда
Назначить = 2;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Назначить = 1 Тогда
Субконто.ИспользоватьВладельца("");
ИначеЕсли Назначить = 2 Тогда
Субконто.ИспользоватьВладельца(РУ);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПоменятьЗначения(А1, А2)
А = А1;
А1 = А2;
А2 = А;
КонецПроцедуры
//-----------------------------------------------
Процедура Поменять(Поз1, Поз2)
ПоменятьЗначения(ВидСубконто[Поз1], ВидСубконто[Поз2]);
ПоменятьЗначения(Субконто[Поз1], Субконто[Поз2]);
ПоменятьЗначения(ОтборСубконто[Поз1], ОтборСубконто[Поз2]);
ПоменятьЗначения(ПоГруппам[Поз1], ПоГруппам[Поз2]);
ПоменятьЗначения(Номер[Поз1], Номер[Поз2]);
ПоменятьЗначения(Уровень[Поз1], Уровень[Поз2]);
КонецПроцедуры
//-----------------------------------------------
Функция РасшифровкаОбновить(Обновить)
Расшифровка.Установить("Обновить", Обновить);
Возврат Расшифровка;
КонецФункции
//-----------------------------------------------
Процедура ПоСубконто(Ит, Т, ФлВал)
Если ОтборСубконто[1] = 1 Тогда // разворачивать
Ит.ВыбратьСубконто();
Пока Ит.ПолучитьСубконто() = 1 Цикл
Расшифровка.Установить("ОтборСубконто"+Номер[1], 2);
Расшифровка.Установить("Субконто"+Номер[1], Ит.Субконто(1));
Секция=Т.ПолучитьСекцию("Секция_2");
Если (Лев(ВидСубконто[Номер[1]].ТипСубконто(),11)="Справочник.") и (ОтборСубконто[Номер[1]]<>3) Тогда
Если Ит.Субконто(Номер[1]).ЭтоГруппа()=1 Тогда
Область=Секция.Область();
Область.Полужирный(1);
КонецЕсли;
Если (Уровень[1]>0) Тогда
Если (Уровень[1]<Ит.Субконто(1).Уровень()) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Т.ВывестиСекцию(Секция);
Если ((Ит.Счет.Количественный = 1) и (ПоКоличеству=1)) Тогда
Т.ВывестиСекцию("Секция_3");
КонецЕсли;
Если ФлВал = 1 Тогда
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту()=1 Цикл
Расшифровка.Установить("Валюта",Ит.Валюта);
Расшифровка.Установить("ПоВалюте",1);
Т.ВывестиСекцию("Секция_4");
КонецЦикла;
Расшифровка.Установить("Валюта");
Расшифровка.Установить("ПоВалюте");
КонецЕсли;
Если ОтборСубконто[2] = 1 Тогда // разворачивать
Ит.ВыбратьСубконто(2);
Пока Ит.ПолучитьСубконто(2) = 1 Цикл
Расшифровка.Установить("ОтборСубконто"+Номер[2], 2);
Расшифровка.Установить("Субконто"+Номер[2], Ит.Субконто(2));
Секция=Т.ПолучитьСекцию("Секция_5");
Если (Лев(ВидСубконто[Номер[2]].ТипСубконто(),11)="Справочник.") и (ОтборСубконто[Номер[2]]<>3) Тогда
Если Ит.Субконто(Номер[2]).ЭтоГруппа()=1 Тогда
Область=Секция.Область();
Область.Полужирный(1);
КонецЕсли;
Если (Уровень[2]>0) Тогда
Если (Уровень[2]<Ит.Субконто(2).Уровень()) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Т.ВывестиСекцию(Секция);
Если ((Ит.Счет.Количественный = 1) и (ПоКоличеству=1)) Тогда
Т.ВывестиСекцию("Секция_6");
КонецЕсли;
Если ФлВал = 1 Тогда
Ит.ВыбратьВалюты(,,1);
Пока Ит.ПолучитьВалюту(1)=1 Цикл
Расшифровка.Установить("Валюта",Ит.Валюта);
Расшифровка.Установить("ПоВалюте",1);
Т.ВывестиСекцию("Секция_7");
КонецЦикла;
Расшифровка.Установить("Валюта");
Расшифровка.Установить("ПоВалюте");
КонецЕсли;
Если ОтборСубконто[3] = 1 Тогда // разворачивать
Ит.ВыбратьСубконто(3);
Пока Ит.ПолучитьСубконто(3) = 1 Цикл
Расшифровка.Установить("ОтборСубконто"+Номер[3], 2);
Расшифровка.Установить("Субконто"+Номер[3], Ит.Субконто(3));
Если (Уровень[3]>0) Тогда
Если (Уровень[3]<Ит.Субконто(3).Уровень()) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Т.ВывестиСекцию("Секция_9");
Если ((Ит.Счет.Количественный = 1) и (ПоКоличеству=1)) Тогда
Т.ВывестиСекцию("Секция_10");
КонецЕсли;
Если ФлВал = 1 Тогда
Ит.ВыбратьВалюты(,,2);
Пока Ит.ПолучитьВалюту(2)=1 Цикл
Расшифровка.Установить("Валюта",Ит.Валюта);
Расшифровка.Установить("ПоВалюте",1);
Т.ВывестиСекцию("Секция_11");
КонецЦикла;
Расшифровка.Установить("Валюта");
Расшифровка.Установить("ПоВалюте");
КонецЕсли;
КонецЦикла;
Расшифровка.Установить("Субконто"+Номер[3]);
Расшифровка.Установить("ОтборСубконто"+Номер[3]);
КонецЕсли;
КонецЦикла;
Расшифровка.Установить("Субконто"+Номер[2]);
Расшифровка.Установить("ОтборСубконто"+Номер[2]);
КонецЕсли;
КонецЦикла;
Расшифровка.Установить("Субконто"+Номер[1]);
Расшифровка.Установить("ОтборСубконто"+Номер[1]);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура Сформировать(Ручн = 0, ФлагЗакрытияФормы = 0)
Если Счет.Выбран() = 0 Тогда
Предупреждение("Не вказано рахунок!");
Возврат;
КонецЕсли;
Если глПроверкаПериода(Дата1,Дата2) = 0 Тогда
Возврат;
КонецЕсли;
ВидСубконто[1] = ВыбВидСубконто1; Субконто[1] = Субконто1; ОтборСубконто[1] = ?(ВидСубконто[1].Выбран()=1, ОтборСубконто1.ТекущаяСтрока(), 3); ПоГруппам[1] = ПоГруппам1; Номер[1] = 1; Уровень[1]=?(СпСубконто1.ТекущаяСтрока()>0,СпСубконто1.ПолучитьЗначение(СпСубконто1.ТекущаяСтрока()),0);
ВидСубконто[2] = ВыбВидСубконто2; Субконто[2] = Субконто2; ОтборСубконто[2] = ?(ВидСубконто[2].Выбран()=1, ОтборСубконто2.ТекущаяСтрока(), 3); ПоГруппам[2] = ПоГруппам2; Номер[2] = 2; Уровень[2]=?(СпСубконто2.ТекущаяСтрока()>0,СпСубконто2.ПолучитьЗначение(СпСубконто2.ТекущаяСтрока()),0);
ВидСубконто[3] = ВыбВидСубконто3; Субконто[3] = Субконто3; ОтборСубконто[3] = ?(ВидСубконто[3].Выбран()=1, ОтборСубконто3.ТекущаяСтрока(), 3); ПоГруппам[3] = ПоГруппам3; Номер[3] = 3; Уровень[3]=?(СпСубконто3.ТекущаяСтрока()>0,СпСубконто3.ПолучитьЗначение(СпСубконто3.ТекущаяСтрока()),0);
Если (ВидСубконто[1] = ВидСубконто[2]) И (ОтборСубконто[1] <> 3) И (ОтборСубконто[2] <> 3) Или
(ВидСубконто[2] = ВидСубконто[3]) И (ОтборСубконто[2] <> 3) И (ОтборСубконто[3] <> 3) Или
(ВидСубконто[3] = ВидСубконто[1]) И (ОтборСубконто[3] <> 3) И (ОтборСубконто[1] <> 3) Тогда
Предупреждение("Вибрані однакові види субконто!");
Возврат;
КонецЕсли;
Если Ручн = 1 Тогда
СохранитьЗначение("ОтчРабСчет",Счет);
КонецЕсли;
Если ОтборСубконто[1] > ОтборСубконто[2] Тогда
Поменять(1, 2);
КонецЕсли;
Если ОтборСубконто[2] > ОтборСубконто[3] Тогда
Поменять(2, 3);
Если ОтборСубконто[1] > ОтборСубконто[2] Тогда
Поменять(1, 2);
КонецЕсли;
КонецЕсли;
ФлВал = Счет.Валютный;
Расшифровка = СоздатьОбъект("СписокЗначений");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьРазделительУчета(РазделительУчета);
КолПоСчету = 0;
Заголовок1 = "";
Для А=1 По 3 Цикл
Если ОтборСубконто[А] <> 3 Тогда
Ит.ИспользоватьСубконто(ВидСубконто[А], Субконто[А], ОтборСубконто[А], ПоГруппам[А]);
Если А <> 1 Тогда
Заголовок1 = Заголовок1+"; ";
КонецЕсли;
Заголовок1 = Заголовок1+ВидСубконто[А];
Если ОтборСубконто[А] = 2 Тогда
Заголовок1 = Заголовок1+": "+Субконто[А];
КолПоСчету = Счет.УчетПоКоличеству(А);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Ит.ВключатьСубсчета(ДанныеПоСубсчетам);
Если Ит.ВыполнитьЗапрос(Дата1, Дата2, Счет) = 0 Тогда
Возврат;
КонецЕсли;
Если (ТипЗначенияСтр(Т) <> "Таблица") Или (Обновить = 0) Тогда
Т = СоздатьОбъект("Таблица");
Иначе
Т.Очистить();
КонецЕсли;
Т.ИсходнаяТаблица("Таблица");
Расшифровка.Установить("Отчет", "ОборотноСальдоваяВедомостьПоСчету");
Расшифровка.Установить("РазделительУчета", РазделительУчета);
Расшифровка.Установить("Дата1", Дата1);
Расшифровка.Установить("Дата2", Дата2);
Расшифровка.Установить("Счет", Счет);
Расшифровка.Установить("ДанныеПоСубсчетам", ДанныеПоСубсчетам);
Расшифровка.Установить("ПоКоличеству", ПоКоличеству);
Для А=1 По 3 Цикл
Расшифровка.Установить("ВидСубконто"+Номер[А], ВидСубконто[А]);
Расшифровка.Установить("Субконто"+Номер[А], Субконто[А]);
Расшифровка.Установить("ОтборСубконто"+Номер[А], ОтборСубконто[А]);
Расшифровка.Установить("ПоГруппам"+Номер[А], ПоГруппам[А]);
Расшифровка.Установить("Уровень"+Номер[А], Уровень[А]);
КонецЦикла;
Т.ВывестиСекцию("Секция_12");
Т.ВывестиСекцию("Секция_1");
ФиксСтрок = 5;
Если ПустоеЗначение(Заголовок1) = 0 Тогда
Т.ВывестиСекцию("Секция_19");
ФиксСтрок = ФиксСтрок + 1;
КонецЕсли;
Т.ВывестиСекцию("Секция_20");
Расшифровка.УдалитьВсе();
Расшифровка.Установить("Отчет", "КарточкаСчета");
Расшифровка.Установить("РазделительУчета", РазделительУчета);
Расшифровка.Установить("Дата1", Дата1);
Расшифровка.Установить("Дата2", Дата2);
Расшифровка.Установить("Счет", Счет);
Для А=1 По 3 Цикл
Если ОтборСубконто[А] <> 3 Тогда
Расшифровка.Установить("ВидСубконто"+Номер[А], ВидСубконто[А]);
Если ОтборСубконто[А] = 2 Тогда
Расшифровка.Установить("ОтборСубконто"+Номер[А], ОтборСубконто[А]);
Расшифровка.Установить("Субконто"+Номер[А], Субконто[А]);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ДанныеПоСубсчетам = 1 Тогда
Ит.ВыбратьСчета();
Ит.ПолучитьСчет();
Пока Ит.ПолучитьСчет() = 1 Цикл
Расшифровка.Установить("Счет", Ит.Счет);
Т.ВывестиСекцию("Секция_14");
Если КолПоСчету = 1 Тогда
Т.ВывестиСекцию("Секция_15");
КонецЕсли;
Если ФлВал = 1 Тогда
Ит.ВыбратьВалюты();
Пока Ит.ПолучитьВалюту()=1 Цикл
Расшифровка.Установить("Валюта",Ит.Валюта);
Расшифровка.Установить("ПоВалюте",1);
Т.ВывестиСекцию("Секция_16");
КонецЦикла;
Расшифровка.Установить("Валюта");
Расшифровка.Установить("ПоВалюте");
КонецЕсли;
ПоСубконто(Ит, Т, ФлВал);
Расшифровка.Установить("Отчет", "КарточкаСчета");
КонецЦикла;
Иначе
ПоСубконто(Ит, Т, ФлВал);
КонецЕсли;
Если КолПоСчету = 0 Тогда
Если ОтборСубконто[1] <> 3 Тогда
Т.ВывестиСекцию("Секция_8");
Иначе
Т.ВывестиСекцию("Секция_17");
КонецЕсли;
Иначе
Если ОтборСубконто[1] <> 3 Тогда
Т.ВывестиСекцию("Секция_13");
Иначе
Т.ВывестиСекцию("Секция_18");
КонецЕсли;
КонецЕсли;
Ит = 0;
ВерхнийКолонтитул = "Оборотно-сальдова відомість по рахунку "+Счет+" ("+ПериодСтр(Дата1, Дата2)+")"+?(ТипЗначения(РазделительУчета)=0, "", " "+РазделительУчета);
НижнийКолонтитул = глНижнийКолонтитул();
Т.Опции(0, 0, ФиксСтрок, 3, "ОпцииПечатиОСВПоСчету", "ОСВПоСчету");
Т.ОбластьПечати(2);
Т.ПовторятьПриПечатиСтроки(ФиксСтрок-1,ФиксСтрок);
Т.ПараметрыСтраницы(,,,,,,,,, 1);
Т.Защита(Константа.ФлагЗащитыОтчетов);
Т.ТолькоПросмотр(1);
Т.Показать("Оборотно-сальдова відомість по рахунку "+Счет+?(ПустоеЗначение(Заголовок1)=1, "", ", по субконто "+Заголовок1)+" ("+ПериодСтр(Дата1, Дата2)+")"+?(ТипЗначения(РазделительУчета)=0, "", " "+РазделительУчета), "");
Если Закрыть = 1 Тогда
СтрокаДействийФормы = "#Закрыть";
КонецЕсли;
Если (ФлагЗакрытияФормы = 1) Или (Обновить = 2) Или (Закрыть = 1) Тогда
СтрокаДействийФормы = "#Закрыть";
КонецЕсли;
КонецПроцедуры
//********************************************************
Процедура ПриВыбореВидаСубконто1()
Форма.Субконто1.НазначитьТип(ВыбВидСубконто1);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто1);
Если Лев(ВыбВидСубконто1.ТипСубконто(),10)="Справочник" Тогда
ЗаполнитьСписок(СпСубконто1,ВыбВидСубконто1);
Форма.СпСубконто1.Доступность(1);
Иначе
СпСубконто1.УдалитьВсе();
Форма.СпСубконто1.Доступность(0);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореВидаСубконто2()
Форма.Субконто2.НазначитьТип(ВыбВидСубконто2);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто2);
Если Лев(ВыбВидСубконто2.ТипСубконто(),10)="Справочник" Тогда
ЗаполнитьСписок(СпСубконто2,ВыбВидСубконто2);
Форма.СпСубконто2.Доступность(1);
Иначе
СпСубконто2.УдалитьВсе();
Форма.СпСубконто2.Доступность(0);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореВидаСубконто3()
Форма.Субконто3.НазначитьТип(ВыбВидСубконто3);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто3);
Если Лев(ВыбВидСубконто3.ТипСубконто(),10)="Справочник" Тогда
ЗаполнитьСписок(СпСубконто3,ВыбВидСубконто3);
Форма.СпСубконто3.Доступность(1);
Иначе
СпСубконто3.УдалитьВсе();
Форма.СпСубконто3.Доступность(0);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореСчета()
Если Счет.КоличествоСубконто() > 0 Тогда
НазначитьСчет(ВыбВидСубконто1, Счет, 1);
Форма.Субконто1.НазначитьТип(ВыбВидСубконто1);
ПриВыбореВидаСубконто1();
Доступность = 1;
Иначе
ВыбВидСубконто1 = "";
Субконто1 = "";
Доступность = 0;
КонецЕсли;
ОтборСубконто1.ТекущаяСтрока(1);
Форма.Субконто1.Доступность(Доступность);
Форма.ОтборСубконто1.Доступность(Доступность);
Форма.ВыбВидСубконто1.Доступность(Доступность);
Форма.ПоГруппам1.Доступность(Доступность);
Форма.ОчиститьСубконто1.Доступность(Доступность);
//-----
Если Счет.КоличествоСубконто() > 1 Тогда
НазначитьСчет(ВыбВидСубконто2, Счет, 2);
Форма.Субконто2.НазначитьТип(ВыбВидСубконто2);
ОтборСубконто2.ТекущаяСтрока(1);
ПриВыбореВидаСубконто2();
Доступность = 1;
Иначе
ВыбВидСубконто2 = "";
Субконто2 = "";
ОтборСубконто2.ТекущаяСтрока(3);
Доступность = 0;
КонецЕсли;
Форма.Субконто2.Доступность(Доступность);
Форма.ОтборСубконто2.Доступность(Доступность);
Форма.ВыбВидСубконто2.Доступность(Доступность);
Форма.ПоГруппам2.Доступность(Доступность);
Форма.ОчиститьСубконто2.Доступность(Доступность);
//-----
Если Счет.КоличествоСубконто() > 2 Тогда
НазначитьСчет(ВыбВидСубконто3, Счет, 3);
Форма.Субконто3.НазначитьТип(ВыбВидСубконто3);
ОтборСубконто3.ТекущаяСтрока(1);
ПриВыбореВидаСубконто3();
Доступность = 1;
Иначе
ВыбВидСубконто3 = "";
Субконто3 = "";
ОтборСубконто3.ТекущаяСтрока(3);
Доступность = 0;
КонецЕсли;
Форма.Субконто3.Доступность(Доступность);
Форма.ОтборСубконто3.Доступность(Доступность);
Форма.ВыбВидСубконто3.Доступность(Доступность);
Форма.ПоГруппам3.Доступность(Доступность);
Форма.ОчиститьСубконто3.Доступность(Доступность);
Если Счет.ЭтоГруппа() = 0 Тогда
ДанныеПоСубсчетам = 0;
Форма.ДанныеПоСубсчетам.Доступность(0);
Иначе
Форма.ДанныеПоСубсчетам.Доступность(1);
КонецЕсли;
Форма.ПоКоличеству.Доступность(Счет.Количественный);
ПоКоличеству=Счет.Количественный;
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто1);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто2);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто3);
глЗаписатьИсториюВыбора("ИсторияВыбораСчета_ОборотноСальдоваяВедомостьПоСчету",Счет);
КонецПроцедуры
//********************************************************************************
//* ИсторияВыбораСчета
//* Назначение: просмотр истории выбора счета
//*
//* Параметры:
//*
Процедура ИсторияВыбораСчета()
Перем Выбор, спВыбора;
спВыбора = ВосстановитьЗначение("ИсторияВыбораСчета_ОборотноСальдоваяВедомостьПоСчету");
Если ТипЗначенияСтр(спВыбора) = "СписокЗначений" Тогда
глПроверкаСпискаОбъектов(спВыбора);
Если спВыбора.ВыбратьЗначение(Выбор,"",,,1) = 1 Тогда
Счет = Выбор; ПриВыбореСчета();
КонецЕсли;
КонецЕсли;
КонецПроцедуры //* ИсторияВыбораСчета
//-----------------------------------------------
Процедура ПриВыбореСубконто1()
Если ПустоеЗначение(Субконто1) = 0 Тогда
Если ТипЗначения(Субконто1) = 11 Тогда //Справочник
Если Субконто1.ЭтоГруппа() = 1 Тогда
ОтборСубконто1.ТекущаяСтрока(1);
Иначе
ОтборСубконто1.ТекущаяСтрока(2);
КонецЕсли;
Иначе
ОтборСубконто1.ТекущаяСтрока(2);
КонецЕсли;
Иначе
ОтборСубконто1.ТекущаяСтрока(1);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореСубконто2()
Если ПустоеЗначение(Субконто2) = 0 Тогда
Если ТипЗначения(Субконто2) = 11 Тогда //Справочник
Если Субконто2.ЭтоГруппа() = 1 Тогда
ОтборСубконто2.ТекущаяСтрока(1);
Иначе
ОтборСубконто2.ТекущаяСтрока(2);
КонецЕсли;
Иначе
ОтборСубконто2.ТекущаяСтрока(2);
КонецЕсли;
Иначе
ОтборСубконто2.ТекущаяСтрока(1);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореСубконто3()
Если ПустоеЗначение(Субконто3) = 0 Тогда
Если ТипЗначения(Субконто3) = 11 Тогда //Справочник
Если Субконто3.ЭтоГруппа() = 1 Тогда
ОтборСубконто3.ТекущаяСтрока(1);
Иначе
ОтборСубконто3.ТекущаяСтрока(2);
КонецЕсли;
Иначе
ОтборСубконто3.ТекущаяСтрока(2);
КонецЕсли;
Иначе
ОтборСубконто3.ТекущаяСтрока(1);
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ПриОчиститьСубконто1()
ОтборСубконто1.ТекущаяСтрока(1);
Субконто1 = "";
КонецПроцедуры
//-----------------------------------------------
Процедура ПриОчиститьСубконто2()
ОтборСубконто2.ТекущаяСтрока(1);
Субконто2 = "";
КонецПроцедуры
//-----------------------------------------------
Процедура ПриОчиститьСубконто3()
ОтборСубконто3.ТекущаяСтрока(1);
Субконто3 = "";
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореПоВсемРУ()
Если ПоВсемРУ = 1 Тогда
Форма.РазделительУчета.НазначитьТип("");
Иначе
Форма.РазделительУчета.НазначитьТип(Метаданные.РазделительУчета);
РазделительУчета = глЗначениеПоУмолчанию("ОсновнаяФирма");
КонецЕсли;
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто1);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто2);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто3);
КонецПроцедуры
//-----------------------------------------------
Процедура ПриВыбореРУ()
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто1);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто2);
УстановитьВладельца(ПоВсемРУ, РазделительУчета, Субконто3);
КонецПроцедуры
//-----------------------------------------------
Процедура ПриОткрытии()
Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
Форма.РазделительУчета.НазначитьТип(Метаданные.РазделительУчета);
Форма.Текст.Видимость(0);
Иначе
Форма.РазделительУчета.Видимость(0);
Форма.ТекстРУ.Видимость(0);
Форма.ПоВсемРУ.Видимость(0);
КонецЕсли;
ОтборСубконто1.УдалитьВсе();
ОтборСубконто1.ДобавитьЗначение(1, "Розгортати");
ОтборСубконто1.ДобавитьЗначение(2, "Відбирати");
ОтборСубконто1.ДобавитьЗначение(3, "Не враховувати");
ОтборСубконто2.УдалитьВсе();
ОтборСубконто2.ДобавитьЗначение(1, "Розгортати");
ОтборСубконто2.ДобавитьЗначение(2, "Відбирати");
ОтборСубконто2.ДобавитьЗначение(3, "Не враховувати");
ОтборСубконто3.УдалитьВсе();
ОтборСубконто3.ДобавитьЗначение(1, "Розгортати");
ОтборСубконто3.ДобавитьЗначение(2, "Відбирати");
ОтборСубконто3.ДобавитьЗначение(3, "Не враховувати");
Если глФлагРасшифровки = 1 Тогда
Закрыть = 1;
Обновить = глОбновить;
РУ = глРасшифровка.Получить("РазделительУчета");
Если ТипЗначенияСтр(РУ) <> "" Тогда
РазделительУчета = РУ;
ПоВсемРУ = 0;
Иначе
Форма.РазделительУчета.НазначитьТип("");
ПоВсемРУ = 1;
КонецЕсли;
Дата1 = глРасшифровка.Получить("Дата1");
Дата2 = глРасшифровка.Получить("Дата2");
Счет = глРасшифровка.Получить("Счет");
ДанныеПоСубсчетам = глРасшифровка.Получить("ДанныеПоСубсчетам");
ПриВыбореСчета();
ПоКоличеству = глРасшифровка.Получить("ПоКоличеству");
Если ПустоеЗначение(глРасшифровка.Получить("ВидСубконто1")) = 0 Тогда
ВыбВидСубконто1 = глРасшифровка.Получить("ВидСубконто1");
Форма.Субконто1.НазначитьТип(ВыбВидСубконто1);
ПриВыбореВидаСубконто1();
Уровень1 = Число(СпСубконто1.НайтиЗначение(глРасшифровка.Получить("Уровень1")));
Если СпСубконто1.РазмерСписка()>=Уровень1 Тогда
СпСубконто1.ТекущаяСтрока(Уровень1);
КонецЕсли;
ПриВыбореГлубины1();
КонецЕсли;
Если ПустоеЗначение(глРасшифровка.Получить("Субконто1")) = 0 Тогда
Субконто1 = глРасшифровка.Получить("Субконто1");
КонецЕсли;
ОтборСубконто1.ТекущаяСтрока(глРасшифровка.Получить("ОтборСубконто1"));
ПоГруппам1 = глРасшифровка.Получить("ПоГруппам1");
Если ПустоеЗначение(глРасшифровка.Получить("ВидСубконто2")) = 0 Тогда
ВыбВидСубконто2 = глРасшифровка.Получить("ВидСубконто2");
Форма.Субконто2.НазначитьТип(ВыбВидСубконто2);
ПриВыбореВидаСубконто2();
Уровень2 = Число(СпСубконто2.НайтиЗначение(глРасшифровка.Получить("Уровень2")));
Если СпСубконто2.РазмерСписка()>=Уровень2 Тогда
СпСубконто2.ТекущаяСтрока(Уровень2);
КонецЕсли;
ПриВыбореГлубины2();
КонецЕсли;
Если ПустоеЗначение(глРасшифровка.Получить("Субконто2")) = 0 Тогда
Субконто2 = глРасшифровка.Получить("Субконто2");
КонецЕсли;
ОтборСубконто2.ТекущаяСтрока(глРасшифровка.Получить("ОтборСубконто2"));
ПоГруппам2 = глРасшифровка.Получить("ПоГруппам2");
Если ПустоеЗначение(глРасшифровка.Получить("ВидСубконто3")) = 0 Тогда
ВыбВидСубконто3 = глРасшифровка.Получить("ВидСубконто3");
Форма.Субконто3.НазначитьТип(ВыбВидСубконто3);
ПриВыбореВидаСубконто3();
Уровень3 = Число(СпСубконто3.НайтиЗначение(глРасшифровка.Получить("Уровень3")));
Если СпСубконто3.РазмерСписка()>=Уровень3 Тогда
СпСубконто3.ТекущаяСтрока(Уровень3);
КонецЕсли;
ПриВыбореГлубины3();
КонецЕсли;
Если ПустоеЗначение(глРасшифровка.Получить("Субконто3")) = 0 Тогда
Субконто3 = глРасшифровка.Получить("Субконто3");
КонецЕсли;
ОтборСубконто3.ТекущаяСтрока(глРасшифровка.Получить("ОтборСубконто3"));
ПоГруппам3 = глРасшифровка.Получить("ПоГруппам3");
Если Обновить <> 0 Тогда
Т = глТаблица;
КонецЕсли;
Если Обновить <> 2 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
Иначе
Закрыть = 0;
Обновить = 0;
ВыбРазделительУчета = 1;
Дата1 = НачалоПериодаБИ();
Дата2 = КонецПериодаБИ();
Если ПоВсемРУ=0 Тогда
Форма.РазделительУчета.НазначитьТип(Метаданные.РазделительУчета);
РазделительУчета = глЗначениеПоУмолчанию("ОсновнаяФирма");
Иначе
Форма.РазделительУчета.НазначитьТип("");
КонецЕсли;
Если Счет.Выбран()=0 Тогда
ВосстановитьЗначение("ОтчРабСчет",Счет);
КонецЕсли;
ПриВыбореСчета();
КонецЕсли;
КонецПроцедуры
//-----------------------------------------------
Процедура ВводНового()
Дата1 = НачалоПериодаБИ();
Дата2 = КонецПериодаБИ();
ПриВыбореСчета();
КонецПроцедуры
//-----------------------------------------------
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, Флаг)
//Обработка выбора субконто типа "Документ"
Если Лев(ИдентЭлемДиалога, 8) = "Субконто" Тогда
Ном = Число(Прав(ИдентЭлемДиалога, 1));
Если Ном = 1 Тогда
_ВидСубконто = ВыбВидСубконто1;
ИначеЕсли Ном = 2 Тогда
_ВидСубконто = ВыбВидСубконто2;
ИначеЕсли Ном = 3 Тогда
_ВидСубконто = ВыбВидСубконто3;
КонецЕсли;
Если Лев(_ВидСубконто.ТипСубконто(), 8) = "Документ" Тогда
//Предусмотрена возможность выбора субконто типа "Документ" из специально созданного в конфигурации журнала
//Идентификатор такого журнала должен быть такой же, как у вида субконто
Журнал = Метаданные.Журнал(_ВидСубконто.Идентификатор());
Если Журнал.Выбран() = 0 Тогда
Флаг = 1;
Возврат;
КонецЕсли;
//Тип первой ссылки первой графы этого журнала может определять тип параметра,
//передаваемого в форму журнала документов.
//Данный параметр может использоваться, например, для установки отбора документов в открываемой форме
Флаг = 0;
Если Журнал.Графа(1).Выбран() = 0 Тогда
ОткрытьФорму("Журнал."+Журнал.Идентификатор);
Возврат;
КонецЕсли;
Если Журнал.Графа(1).Ссылки.Количество() > 0 Тогда
РеквизитОтбора = Журнал.Графа(1).Ссылки.Получить(1).Тип+"."+Журнал.Графа(1).Ссылки.Получить(1).Вид;
Если РеквизитОтбора = ВыбВидСубконто1.ТипСубконто() Тогда
КонтекстЖурнала = Субконто1;
ИначеЕсли РеквизитОтбора = ВыбВидСубконто2.ТипСубконто() Тогда
КонтекстЖурнала = Субконто2;
ИначеЕсли РеквизитОтбора = ВыбВидСубконто3.ТипСубконто() Тогда
КонтекстЖурнала = Субконто3;
Иначе
ОткрытьФорму("Журнал."+Журнал.Идентификатор);
КонецЕсли;
ОткрытьФорму("Журнал."+Журнал.Идентификатор, КонтекстЖурнала);
Иначе
ОткрытьФорму("Журнал."+Журнал.Идентификатор);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
4andriy @ Сегодня, 16:04
,
проверять видсубконто. Что это контрагенты и тогда выводить ОКПО
4andriy @ Вчера, 16:04
,
Если это БухУчетДляУкраины проще добавить поле ЕДРПОУ в представление Субконто Контрагенты.
mokriak @ Сегодня, 9:27
,
а где именно? в какой строчке? я там просто не понимаю где оно подключется к контрагентам
4andriy @ Сегодня, 11:52
,
Это не в строчке кода, а в свойствах субконто - контрагенты - закладка представление.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua