Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> как отобразить код ОКПО в ведомости          
4andriy Подменю пользователя
сообщение 20.05.21, 15:04
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

версия 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;
                Иначе
                    ОткрытьФорму("Журнал."+Журнал.Идентификатор);
                КонецЕсли;
                ОткрытьФорму("Журнал."+Журнал.Идентификатор, КонтекстЖурнала);
            Иначе
                ОткрытьФорму("Журнал."+Журнал.Идентификатор);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


Сообщение отредактировал Vofka - 28.05.21, 6:56

denis84 Подменю пользователя
сообщение 20.05.21, 15:36
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

4andriy @ Сегодня, 16:04 * ,
проверять видсубконто. Что это контрагенты и тогда выводить ОКПО

mokriak Подменю пользователя
сообщение 21.05.21, 9:27
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 14
Из: Київ
Спасибо сказали: 1 раз
Рейтинг: 1

4andriy @ Вчера, 16:04 * ,
Если это БухУчетДляУкраины проще добавить поле ЕДРПОУ в представление Субконто Контрагенты.

4andriy Подменю пользователя
сообщение 21.05.21, 10:52
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

mokriak @ Сегодня, 9:27 * ,
а где именно? в какой строчке? я там просто не понимаю где оно подключется к контрагентам 32000000.gif

mokriak Подменю пользователя
сообщение 21.05.21, 13:32
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 14
Из: Київ
Спасибо сказали: 1 раз
Рейтинг: 1

4andriy @ Сегодня, 11:52 * ,
Это не в строчке кода, а в свойствах субконто - контрагенты - закладка представление.



Сообщение отредактировал Vofka - 28.05.21, 6:55

Спасибо сказали: 4andriy,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 16:06
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!