|
v7: Условие использования материала | ☑ | ||
---|---|---|---|---|
0
Роспатнюк Сергей Сер
26.04.19
✎
09:29
|
Добрый день, помогите найти где считается процент использования материала вот процедуры, цель вывести в отчет колонку с этим процентом и отсортировать по процентам.
//процедурка будет показывать материал которого за период использовали меньше 30% от остатка за тотже период //********** //********** Процедура Сформировать1() // неснижм= СоздатьОбъект("Справочник.Неснижаемые"); // неснижм.ИспользоватьВладельца(материалы); Несн = СоздатьОбъект("ТаблицаЗначений"); СписокНеснижаемых(Несн); спМатериалов = СоздатьОбъект("СписокЗначений"); несн.Выгрузить(спМатериалов,,,"материал"); состояние("расчет итогов"); оборотсумма=0; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); //начало=0; //конец=0; //расход=0; //приход=0; Если вклСклад = 0 Тогда ИначеЕсли Склад.Выбран() = 1 Тогда //Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Склад,,0); Иначе //Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения); КонецЕсли; // Если вклМОЛ = 0 Тогда ИначеЕсли МОЛ.выбран() = 1 Тогда Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники,МОЛ,,0); Иначе Ит.ИспользоватьСубконто(ВидыСубконто.Сотрудники); КонецЕсли; // Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Склад,,1); // Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,Склад1,,1); Ит.ИспользоватьСубконто(ВидыСубконто.Материалы,сзМатериалы,1,флгВыводитьГруппы); Если (движ = 1) или (Ист = 1) Тогда // Ит.ВыполнитьЗапрос(выбНачПериода,ВыбКонПериода, списокСчетов,,,,"Проводка",1+4); Иначе //Ит.ВыполнитьЗапрос(выбНачПериода,ВыбКонПериода, списокСчетов,,,,,"К"); КонецЕсли; // Сформировать_Колонки("Заголовок"); Сформировать_Колонки("Шапка"); //Таб.ВывестиСекцию("1"); Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); нпп = 0; Ит.ВыполнитьЗапрос(выбНачПериода,ВыбКонПериода, списокСчетов,,,,"Проводка",1+4); Ит.ВыбратьСубконто(ВидыСубконто.МестаХранения); Пока Ит.ПолучитьСубконто(ВидыСубконто.МестаХранения) = 1 Цикл Сформировать_Колонки("Субконто1"); Ит.ВыбратьСубконто(ВидыСубконто.Сотрудники); Пока Ит.ПолучитьСубконто(ВидыСубконто.Сотрудники) = 1 Цикл Сформировать_Колонки("Субконто2"); Ит.ВыбратьСубконто(ВидыСубконто.Материалы); Пока Ит.ПолучитьСубконто(ВидыСубконто.Материалы) = 1 Цикл Если ФлУд = 1 Тогда Если Ит.Субконто(ВидыСубконто.Материалы).ПометкаУдаления() = 0 Тогда Продолжить; КонецЕсли; КонецЕсли; нпп = нпп + 1; материал = Ит.Субконто(3); Если Материал.ЭтоГруппа()=1 Тогда Сформировать_Колонки("Субконто3Группа"); Продолжить; Иначе материал = Ит.Субконто(3); // оборотсумма=оборотсумма; если Несн .НайтиЗначение(материал,,)=0 тогда //неснижм.Владелец.НайтиПоРеквизиту(материал.,,); // сообщить("нащол несниж материал"+материал); // иначе Если (Ит.КО(3))<((Ит.СКД(3)-ит.СКК(3))*0.3) Тогда // //Сформировать_Колонки("Субконто2"); //ит.выбратьПериоды(); //Ит.ВыбратьСубконто(ВидыСубконто.Материалы); //пока Ит.ПолучитьСубконто(ВидыСубконто.Материалы)=1 цикл //Пока ит.получитьПериод()=1 Цикл оборотсумма=оборотсумма+Ит.КО(1); приходсумма=приходсумма+ит.до(1); конец=конец+Ит.СКД(1)-ит.СКК(1); начало=начало+Ит.СНД(1)-ит.СНК(1); колначало=колначало + Ит.СНД(3)-ит.СНК(3); колконец= колконец + Ит.СКД(3)-ит.СКК(3); расходкол= расходкол + Ит.КО(3); приходкол= приходкол +ит.до(3); Сформировать_Колонки("Субконто3"); //конеццикла; //Сформировать_Колонки("итоги"); КонецЕсли; конецесли; КонецЕсли; Если (движ = 1) или (Ист = 1) Тогда ит.выбратьПериоды(); Пока ит.получитьПериод()=1 Цикл Если движ = 1 Тогда док = Строка(ит.операция.документ)+"; "; Срок = СрокИзДат(ит.операция.документ.ДатаДок); иначе док = ""; КонецЕсли; Если Ист = 1 Тогда Если Ит.ДО(3)>0 Тогда Источник = Строка(Ит.Операция.Кредит.МестаХранения); иначе Источник = Строка(Ит.Операция.Дебет.МестаХранения); КонецЕсли; иначе Источник=""; КонецЕсли; Сформировать_Колонки("Док"); КонецЦикла; // КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; //сообщить(оборотсумма); расход=оборотсумма; приход=приходсумма; //а=оборотсумма; //б=приходсумма; в=конец; г=начало; д=колначало; е=колконец; а=расходкол; б=приходкол; Таб.ВывестиСекцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры Код запроса //**** неснижаемые обрашаемся к справочнику Процедура СписокНеснижаемых(Табла="") Перем Запрос, ТекстЗапроса, Таб; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(СписокНеснижаемых) |Период с ВыбКонПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаудаление; |Без итогов; |ЗаписьСпр = Справочник.Неснижаемые.ТекущийЭлемент; |менеджер = Справочник.Неснижаемые.менеджер; |сезон = Справочник.Неснижаемые.сезон; |критический = Справочник.Неснижаемые.критический; |неснижаемый = Справочник.Неснижаемые.неснижаемый; |материал = Справочник.Неснижаемые.Владелец; |склад = Справочник.Неснижаемые.склад; |Группировка менеджер без групп; |Группировка материал без групп; |Группировка склад без групп; " ; //Если фильтрСезон = 1 Тогда //текстзапроса = текстзапроса + " //|Условие(сезон = выбСезон);" //; //КонецЕсли; //Если выбСклад.Выбран() = 1 Тогда //текстзапроса = текстзапроса + " //|Условие(склад = выбСклад);" //; //КонецЕсли; //Если выбменеджер.выбран() = 1 Тогда // текстзапроса = текстзапроса + " // |Условие(менеджер = ВыбМенеджер);" // ; //КонецЕсли; текстзапроса = текстзапроса + " |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Если пустоеЗначение(табла) = 0 Тогда статусВозврата(0); КонецЕсли; возврат; КонецЕсли; Если ТипЗначенияСтр(табла) <> "ТаблицаЗначений" Тогда иначе запрос.выгрузить(табла,1,0); конецесли; КонецПроцедуры |
|||
1
Builder
26.04.19
✎
09:33
|
Если (Ит.КО(3))<((Ит.СКД(3)-ит.СКК(3))*0.3) Тогда
|
|||
2
Роспатнюк Сергей Сер
26.04.19
✎
09:34
|
(1) Большое спасибо
|
|||
3
Роспатнюк Сергей Сер
26.04.19
✎
16:12
|
Все бы хорошо, колонка добавлена процент считается, но как отсортировать по этому проценту не пойму ибо формула находится прямо на макете, не ужели только созданием ТЗ и предварительным расчетом с последующим выводом в таблицу отчета, может можно попроще кто с семеркой на ты подскажите
|
|||
4
Роспатнюк Сергей Сер
26.04.19
✎
16:31
|
походу 7ков не осталось (
|
|||
5
Builder
26.04.19
✎
16:39
|
(3) Мысль правильная - создать ТЗ, заполнить, отсортировать, вывести.
Куда уж проще то? |
|||
6
Роспатнюк Сергей Сер
26.04.19
✎
16:48
|
(5) Проще Таб.Сортировать("Колнока") ну только у ТабДока так нельзя(((
|
|||
7
Роспатнюк Сергей Сер
26.04.19
✎
16:50
|
(5) просто не особо понимаю откуда в коде выше появляется материал, да и как работать с Бух итогами тоже не знаю
|
|||
8
Slypower
29.04.19
✎
08:46
|
(6) Так если сперва загнать в ТЗ, потом отсортировать, и уже обходя ТЗ выводить.
|
|||
9
HawkEye
29.04.19
✎
08:50
|
(7) вместо ВывестиСекцию() - сделай .НоваяСтрока()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |