Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Нз="Запаси" Тогда //Запасы
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ВключатьСубсчета(-1,-1);
Ит.ИспользоватьСубконто("МОЛ",СМ,2);
Ит.ИспользоватьСубконто("Запасы",,1);
Ит.ВыполнитьЗапрос(Дата1,Дата1,,,,1);
Ит.ВыбратьСчета(); Пока Ит.ПолучитьСчет()=1 Цикл
Если Ит.счет.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; СчетВыб=Ит.Счет;
Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1)=1 Цикл ИтМОЛ=Ит.Субконто(1);
Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2)=1 Цикл ИтАктив=Ит.Субконто(2);
Если (Ит.СНД(3)=0) и (Ит.СНК(3)=0) и (Ит.СНД(1)=0) и (Ит.СНК(1)=0) Тогда
Продолжить; КонецЕсли;
ТЗ.НоваяСтрока();
ТЗ.ТМЦ=ИтАктив; ТЗ.Счет=СчетВыб;// ИФДок=ИтИФ;
ТЗ.Кво=Ит.СНД(3)-Ит.СНК(3);
ТЗ.Сумма=Ит.СНД(1)-Ит.СНК(1);
ТЗ.Цена=Ит.СКД(1)-Ит.СКК(1);
ТЗ.Код= ИтАктив.Код;
КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли;
ПоказатьПо теме из базы знаний
- Наследование свойств элементов, или Как пользователь может сломать вашу форму
- Групповое изменение наименований и групп элементов справочников с отбором по любому реквизиту, в том числе по части наименования и группе (управляемая форма)
- Как превратить бизнес-заказчиков и разработчиков в единую команду?
- Как разрешить создание документов всем обладателям роли без указания адресации, или краткий обзор ограничения прав на создание документов в 1С:Документооборот 3.0
- Внесение изменений в выгрузку торгового каталога из 1С: УПП (обычные формы, платформа 8.3) на сайт с помощью стандартной обработки 1С Битрикс
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
//*******************************************
Процедура Сформировать(Режим)
Если МВО.Выбран() = 0 Тогда
Предупреждение("Не выбрано МВО!");
Возврат;
КонецЕсли;
глУстПропись();
СМ = СоздатьОбъект("СписокЗначений");
Если ПоВсем = 0 Тогда
СМ.ДобавитьЗначение(МВО.ТекущийЭлемент());
Иначе
Сотр = МВО.Сотрудник;
МВОв=СоздатьОбъект("Справочник.МОЛ");
МВОв.ВыбратьЭлементы();
Пока МВОв.ПолучитьЭлемент() = 1 Цикл
Если МВОв.ЭтоГруппа() = 1 Тогда
Продолжить; КонецЕсли;
Если МВОв.Сотрудник = Сотр Тогда
СМ.ДобавитьЗначение(МВОв.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
КонецЕсли;
Нз = Форма.Закладки.ПолучитьЗначение(Форма.Закладки.ТекущаяСтрока());
НФ = Константа.ОсновнаяФирма;
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ТМЦ");
ТЗ.НоваяКолонка("ИнвНомер","Строка",10,);
ТЗ.НоваяКолонка("Счет");
ТЗ.НоваяКолонка("Кво","Число",10,3);
ТЗ.НоваяКолонка("Сумма","Число",10,2);
ТЗ.НоваяКолонка("Цена","Число",10,2);
ТЗ.НоваяКолонка("Код","Строка",10,);
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ВключатьСубсчета(-1,-1);
Ит.ИспользоватьСубконто("МОЛ",МВО,2);
Ит.ИспользоватьСубконто("Активы",,1);
Ит.ВыполнитьЗапрос(,Дата1,?(Нз="ОЗ","10","11"));
Ит.ВыбратьСчета(); Пока Ит.ПолучитьСчет()=1 Цикл
Если Ит.счет.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; СчетВыб=Ит.Счет;
Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1)=1 Цикл ИтМОЛ=Ит.Субконто(1);
Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2)=1 Цикл ИтАктив=Ит.Субконто(2);
Если (Ит.СНД(3)=0) и (Ит.СНК(3)=0) и (Ит.СНД(1)=0) и (Ит.СНК(1)=0) Тогда
Продолжить; КонецЕсли;
ТЗ.НоваяСтрока();
ТЗ.ТМЦ =ИтАктив; ТЗ.Счет=СчетВыб;// ИФДок=ИтИФ;
ТЗ.Кво =Ит.СКД(3)-Ит.СКК(3);
ТЗ.Сумма=Ит.СКД(1)-Ит.СКК(1);
ТЗ.Цена=Ит.СКД(1)-Ит.СКК(1);
ТЗ.ИнвНомер = ИтАктив.ИнвНомер;
ТЗ.Код= ИтАктив.Код;
КонецЦикла; КонецЦикла; КонецЦикла; //КонецЦикла;
Если Нз="Запаси" Тогда //Запасы
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ВключатьСубсчета(-1,-1);
Ит.ИспользоватьСубконто("МОЛ",СМ,2);
Ит.ИспользоватьСубконто("Запасы",,1);
Ит.ВыполнитьЗапрос(Дата1,Дата1,,,,1);
Ит.ВыбратьСчета(); Пока Ит.ПолучитьСчет()=1 Цикл
Если Ит.счет.ЭтоГруппа()=1 Тогда Продолжить; КонецЕсли; СчетВыб=Ит.Счет;
Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1)=1 Цикл ИтМОЛ=Ит.Субконто(1);
Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2)=1 Цикл ИтАктив=Ит.Субконто(2);
Если (Ит.СНД(3)=0) и (Ит.СНК(3)=0) и (Ит.СНД(1)=0) и (Ит.СНК(1)=0) Тогда
Продолжить; КонецЕсли;
ТЗ.НоваяСтрока();
ТЗ.ТМЦ=ИтАктив; ТЗ.Счет=СчетВыб;// ИФДок=ИтИФ;
ТЗ.Кво=Ит.СНД(3)-Ит.СНК(3);
ТЗ.Сумма=Ит.СНД(1)-Ит.СНК(1);
ТЗ.Цена=Ит.СКД(1)-Ит.СКК(1);
ТЗ.Код= ИтАктив.Код;
КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли;
ТЗ.Свернуть("Счет,ТМЦ,ИнвНомер","Кво,Сумма");
ТЗ.Сортировать("Счет,ТМЦ,ИнвНомер");
Т = СоздатьОбъект("таблица");
Если (Режим = "Опис") и (НЗ="ОЗ") Тогда
ПерСтр = 35; ПослСтр = 35;
Заголовок = "опис ОЗ по ";
Т.ПараметрыСтраницы(2,1);
ИначеЕсли (Режим = "Порів") и (НЗ="ОЗ") Тогда
ПерСтр = 26; ПослСтр = 26;
Заголовок = "Порівняльна відомість ОЗ по ";
Т.ПараметрыСтраницы(1,1);
ИначеЕсли (Режим = "Опис") и (НЗ="Запаси") Тогда
ПерСтр = 28; ПослСтр = 28;
Заголовок = "опис НА та запасів по ";
Т.ПараметрыСтраницы(2,1);
ИначеЕсли (Режим = "Порів") и (НЗ="Запаси") Тогда
ПерСтр = 27; ПослСтр = 27;
Заголовок = "Порівняльна відомість НА та запасів по ";
Т.ПараметрыСтраницы(2,1);
КонецЕсли;
Т.Исходнаятаблица(Режим+" "+Нз);
Т.ВывестиСекцию("Шапка");
Т.ВывестиСекцию("СтрШапка");
ТЗи = СоздатьОбъект("ТаблицаЗначений");
ТЗ.Выгрузить(ТЗи);
ТЗи.Свернуть("Счет","Кво,Сумма,Цена");
ТЗи.ВыбратьСтроки(); КолСтр = ТЗ.КоличествоСтрок(); НомЗап = 0;
Пока ТЗи.ПолучитьСтроку() =1 Цикл
Т.ВывестиСекцию("Счет");
НомСтр = 0; ТЗ.НайтиЗначение(ТЗи.Счет,НомСтр,"Счет");
Если НомСтр > 0 Тогда
Для нп = НомСтр по КолСтр Цикл
ТЗ.ПолучитьСтрокуПоНомеру(нп);
Если ТЗ.Счет<>ТЗи.Счет Тогда Прервать; КонецЕсли;
НомЗап=НомЗап+1;
Т.ВывестиСекцию("Рядок");
КонецЦикла;
КонецЕсли;
Т.ВывестиСекцию("ИтогСчет");
КонецЦикла;
Для нп = 1 по 5 цикл
Т.ВывестиСекцию("Пусто");
КонецЦикла;
Т.ВывестиСекцию("Дно");
Т.ПовторятьПриПечатиСтроки(ПерСтр,ПослСтр);
Т.Опции(0,0,0,0);
Т.Показать(Заголовок+СокрЛП(МВО),"");
КонецПроцедуры
Процедура ПриВыбореЗакладки(нз,ЗначЗакл)
Форма.ИспользоватьСлой("Основной,"+Значзакл,2);
Если нз = 1 Тогда
Форма.Заголовок("Матеріальний опис ОЗ");
ИначеЕсли нз = 2 Тогда
Форма.Заголовок("Матеріальний опис НА та запасів");
КонецЕсли;
КонецПроцедуры
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение("ОЗ","Основновні засоби");
Форма.Закладки.ДобавитьЗначение("Запаси","Інші НА та запаси");
Форма.ИспользоватьСлой("Основной,ОЗ",2);
Форма.Заголовок("опис ОЗ");
Показать
Подозреваяю что тебе надо заменить
на
ТЗ.НоваяСтрока();
ТЗ.ТМЦ=ИтАктив; ТЗ.Счет=СчетВыб;// ИФДок=ИтИФ;
ТЗ.Кво=Ит.СНД(3)-Ит.СНК(3);
ТЗ.Сумма=Ит.СНД(1)-Ит.СНК(1);
ТЗ.Цена=Ит.СКД(1)-Ит.СКК(1);
ТЗ.Код= ИтАктив.Код;
на
ТЗ.НоваяСтрока();
ТЗ.ТМЦ=ИтАктив; ТЗ.Счет=СчетВыб;// ИФДок=ИтИФ;
ТЗ.Код= ИтАктив.Код;
Если ТЗ.ТМЦ.ЭтоГруппа() = 1 Тогда
Иначе
ТЗ.Кво=Ит.СНД(3)-Ит.СНК(3);
ТЗ.Сумма=Ит.СНД(1)-Ит.СНК(1);
ТЗ.Цена=Ит.СКД(1)-Ит.СКК(1);
КонецЕсли
Показать
В параметре
Ит.ИспользоватьСубконто("Запасы",,1);
добавил ещё одну запятую
Ит.ИспользоватьСубконто("Запасы",,,1);
получился отбор по группам но ещё выводит в строку общую стоимость, количество и цену что вообще не нужно. И как выделить наименование группы и подгруппы??? Может выложить весь код модуля???
Ит.ИспользоватьСубконто("Запасы",,1);
добавил ещё одну запятую
Ит.ИспользоватьСубконто("Запасы",,,1);
получился отбор по группам но ещё выводит в строку общую стоимость, количество и цену что вообще не нужно. И как выделить наименование группы и подгруппы??? Может выложить весь код модуля???
Код думаю такой (закомментил то что было)
А секцию, надеюсь сами скопируете
//Т.ВывестиСекцию("Рядок");
Если ТЗ.ТМЦ.ЭтоГруппа() = 1 Тогда
Т.ВывестиСекцию("РядокБез_");
Иначе
Т.ВывестиСекцию("Рядок");
КонецЕсли;
А секцию, надеюсь сами скопируете
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ТМЦ");
заменить на
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ТМЦ","Справочник.ТМЦ"); //ну или как там он называется, например Справочник.Материалы
и в условии добавить
Если ТЗ.ТМЦ.ЭтоГруппа()= 1 тогда
вывестисекцию("рядокбезтмц");
КонецЕсли;
ТЗ.НоваяКолонка("ТМЦ");
заменить на
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ТМЦ","Справочник.ТМЦ"); //ну или как там он называется, например Справочник.Материалы
и в условии добавить
Если ТЗ.ТМЦ.ЭтоГруппа()= 1 тогда
вывестисекцию("рядокбезтмц");
КонецЕсли;
К сожалению!Попробовал не то пальто! Думаю фишка тут
Процедура Сформировать(Режим)
Если МВО.Выбран() = 0 Тогда
Предупреждение("Не выбрано МВО!");
Возврат;
КонецЕсли;
глУстПропись();
СМ = СоздатьОбъект("СписокЗначений");
Если ПоВсем = 0 Тогда
СМ.ДобавитьЗначение(МВО.ТекущийЭлемент());
Иначе
Сотр = МВО.Сотрудник;
МВОв=СоздатьОбъект("Справочник.МОЛ");
МВОв.ВыбратьЭлементы();
Пока МВОв.ПолучитьЭлемент() = 1 Цикл
Если МВОв.ЭтоГруппа() = 1 Тогда
Продолжить; КонецЕсли;
Если МВОв.Сотрудник = Сотр Тогда
СМ.ДобавитьЗначение(МВОв.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
КонецЕсли;
Показать
Возьми обработку из (47), измени код из (49), в этом коде для случая Если ТЗ.ТМЦ.ЭтоГруппа() = 1 Тогда
Проставь для колва и суммы 0.
Все извини, помочь больше скорее всего не смогу (по крайней мере сегодня точно)
Проставь для колва и суммы 0.
Все извини, помочь больше скорее всего не смогу (по крайней мере сегодня точно)
Процедура Сформировать(Режим)
Если МВО.Выбран() = 0 Тогда
Предупреждение("Не выбрано МВО!");
Возврат;
КонецЕсли;
глУстПропись();
СМ = СоздатьОбъект("СписокЗначений");
Если ПоВсем = 0 Тогда
СМ.ДобавитьЗначение(МВО.ТекущийЭлемент());
Иначе
Сотр = МВО.Сотрудник;
МВОв=СоздатьОбъект("Справочник.МОЛ");
МВОв.ВыбратьЭлементы();
Пока МВОв.ПолучитьЭлемент() = 1 Цикл
Если МВОв.ЭтоГруппа() = 1 Тогда
Продолжить; КонецЕсли;
Если МВОв.Сотрудник = Сотр Тогда
СМ.ДобавитьЗначение(МВОв.ТекущийЭлемент());
КонецЕсли;
КонецЦикла;
КонецЕсли;
Показать
(60) я тоже так думаю, поэтому и предложил (59), экспериментируйте. ИспользоватьСубконто встрачается вроде в 3х местах, думаю не так сложно указать (схематично):
Если МОЛ.Выбран() = 1 Тогда
ИспользоватьСубконто(с одними параметрами)
Иначе
ИспользоватьСубконто(С другими параметрами)
КонецЕсли;
Это же Вам нужно, а не мне
Если МОЛ.Выбран() = 1 Тогда
ИспользоватьСубконто(с одними параметрами)
Иначе
ИспользоватьСубконто(С другими параметрами)
КонецЕсли;
Это же Вам нужно, а не мне
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот