Обработки по регистрам 1с 7.7 #459457


#0 by teroinc
Уважаемые коллеги, подскажите пожалуйсто где можно найти обработку - выполняющую следующую функцию: корректную чистку регистра оборотов в 1с 7.7 торговле sql. Заранее безмерно благодарен!!!
#1 by Guk
нет таких обработок...
#2 by Sadovnikov
Что есть " корректную чистку регистра оборотов в 1с 7.7"?
#3 by НикДляЗапросов
Ну чтоб ничего не осталось однозначно
#4 by teroinc
Удалить записи из регистра за какой -то заданный период???
#5 by Sadovnikov
Хорош тупить, а? Пролетел, как вонючий ветер, по веткам - полегчало?
#6 by teroinc
т.е я понимаю никак???
#7 by teroinc
ну ответьте пожалуйсто!!! нет так нет !!!
#8 by НикДляЗапросов
в роду были случаи дебилизма?
#9 by teroinc
вообщем никак не хотите Вы мне помочь я понял!!!
#10 by teroinc
если отчет формируется долго, я так понимаю надо сделать тестирование и исправление ИБ?
#11 by Mikeware
Пишется за 3 минуты. А что, должны хотеть?
#12 by AlexWolf
это вопрос к некой сферической конфигурации в вакууме?
#13 by Mikeware
"Если отчет формируется долго" - нужно разобраться, почему он формируется долго.
#14 by zak555
что за отчёт
#15 by teroinc
Отчет принадлежит объектам конфигурации 1С:"Торговля и склад" база формата sql, база чистая - была заведена с 01.01.2010г, данный отчет имеет вот такой алгоритм работы в части процедуры: Сформировать Процедура Сформировать    Перем Запрос, ТекстЗапроса, Таб;        ПроверкаИнтервалаОтчета(ДатаНачала,ДатаКонец);    xlsЛист=ExcelApp.Worksheets(сзЛисты.ТекущаяСтрока);    Ном=5;    СпсЕкс=СоздатьОбъект("СписокЗначений");    //Пока ПустоеЗначение(xlsЛист.Cells(1,Ном+1).Value) = 0 Цикл    //    Ном=Ном+1;    //    СпсЕкс.ДобавитьЗначение(Врег(СокрЛП(ExcelApp.Cells(1,Ном).Value)));    //КонецЦикла;    //Если СпсЕкс.РазмерСписка = 0 Тогда    //    Предупреждение("Неверный формат таблицы!", 5);    //    Возврат;    //КонецЕсли;    НазвЛиста="";    НазвЛиста=сзЛисты.ПолучитьЗначение(сзЛисты.ТекущаяСтрока);        ГрТов=Константа.ГруппаЮМ;        Запрос = СоздатьОбъект("Запрос");    ТекстЗапроса =    "//{{ЗАПРОС(Сформировать)    |Период с ДатаНачала по ДатаКонец;    |Фирма = Регистр.ПродажиЮМ.Фирма;    |ДатаОтгрузки = Регистр.ПродажиЮМ.ДатаОтгрузки;    |Товар = Регистр.ПродажиЮМ.Товар;    |Контрагент = Регистр.ПродажиЮМ.Контрагент;    |Ответственный = Регистр.ПродажиЮМ.Ответственный;    |АдресДоставки = Регистр.ПродажиЮМ.АдресДоставки;    |Объем = Регистр.ПродажиЮМ.Объем;    |Функция ОбъемСумма = Сумма(Объем);    |Группировка ДатаОтгрузки;    |Группировка Контрагент без групп;    |Группировка Товар без групп;    |Группировка АдресДоставки;    |Условие(Фирма=выбФирма);    |Условие(ДатаОтгрузки >= ДатаНачала);    |Условие(ДатаОтгрузки <= ДатаКонец);        |"//}}ЗАПРОС    ;            // Если ошибка в запросе, то выход из процедуры    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда        Возврат;    КонецЕсли;    Таб = СоздатьОбъект("Таблица");    Таб.ИсходнаяТаблица("Сформировать");    Таб.ВывестиСекцию("Заголовок");    Состояние("Заполнение выходной таблицы...");    Таб.Опции(0, 0, Таб.ВысотаТаблицы, 0);    Пока Запрос.Группировка = 1 Цикл        Пока Запрос.Группировка = 1 Цикл            Пока Запрос.Группировка = 1 Цикл                Пока Запрос.Группировка = 1 Цикл                    печФорматТД="";                    Если ПустоеЗначение(Запрос.АдресДоставки.ФорматТД)=0 Тогда                        печФорматТД=Запрос.АдресДоставки.ФорматТД;                    Иначе                        печФорматТД=Запрос.Контрагент.ФорматТД;                    КонецЕсли;                                        Таб.ВывестиСекцию("Строка");                                        ExcelApp.Cells(Ном,1).NumberFormat="ДД.ММ.ГГГГ";                    ExcelApp.Cells(Ном,1).Value=Запрос.ДатаОтгрузки;                                        ExcelApp.Cells(Ном,2).NumberFormat="@";                    ExcelApp.Cells(Ном,2).Value="Московская область";                                        ExcelApp.Cells(Ном,3).NumberFormat="@";                    ExcelApp.Cells(Ном,3).Value=СокрЛП(Запрос.Контрагент.ПолнНаименование);                                        ExcelApp.Cells(Ном,4).NumberFormat="@";                    ExcelApp.Cells(Ном,4).Value=СокрЛП(""+Запрос.Контрагент.Код+"-"+Запрос.АдресДоставки.Код);                                        ExcelApp.Cells(Ном,5).NumberFormat="@";                    ExcelApp.Cells(Ном,5).Value=СокрЛП(Запрос.АдресДоставки);                                        ExcelApp.Cells(Ном,6).NumberFormat="@";                      ExcelApp.Cells(Ном,6).Value=СокрЛП(Запрос.Ответственный);                                        ExcelApp.Cells(Ном,7).NumberFormat="@";                    ExcelApp.Cells(Ном,7).Value=СокрЛП(Запрос.Контрагент.ГруппаКлиентаЮМ);                                        ExcelApp.Cells(Ном,8).NumberFormat="@";                    ExcelApp.Cells(Ном,8).Value=?(Запрос.Контрагент.Сеть=0,"",СокрЛП(Запрос.Контрагент.НазваниеСети));                                        ExcelApp.Cells(Ном,9).NumberFormat="@";                      ExcelApp.Cells(Ном,9).Value=СокрЛП(печФорматТД);                                        ExcelApp.Cells(Ном,10).NumberFormat="@";                      ExcelApp.Cells(Ном,10).Value=СокрЛП(СокрЛП(Запрос.Товар.НаименованиеЮМ));                                        ExcelApp.Cells(Ном,11).NumberFormat="@";                        ExcelApp.Cells(Ном,11).Value=СокрЛП(Строка(Запрос.Товар.КодЮМ));                                        ExcelApp.Cells(Ном,12).NumberFormat="# ##0,00000";                    ExcelApp.Cells(Ном,12).Value=Запрос.ОбъемСумма/1000000;                                        Ном=Ном+1;                КонецЦикла;            КонецЦикла;        КонецЦикла;    КонецЦикла;        ExcelApp.Visible=1;    Таб.ВывестиСекцию("Итого");    Таб.ТолькоПросмотр;    Таб.Показать("Сформировать", ""); КонецПроцедуры
#16 by zak555
чума ! что за конфа, нетленка ?
#17 by supremum
А сколько собственно времени выполняется сам запрос?
#18 by zak555
распиши регистр ПродажиЮМ
#19 by zak555
|Группировка АдресДоставки;
#20 by supremum
+1
#21 by Chuper_IT
угу там не группировку, а по адресу отсортируй
#22 by zak555
автор, кто писал обработку ?
#23 by teroinc
ПродажиЮМ измерения Фирма ДатаОтгрузки Товар Контрагент Ответственный АдресДоставки ресурсы Объем
#24 by teroinc
есть кто живой? что скажите?
#25 by НикДляЗапросов
Мне вот например страшно советовать таким людям
#26 by teroinc
да не бойся я не кусаюсь!!!
#27 by supremum
Убери и сделай замер времени выполнения собственно запросы, без вывода в excel
#28 by supremum
+ Вот эти измерения можно было бы убрать в реквизиты. ДатаОтгрузки Ответственный АдресДоставки
#29 by teroinc
без вывода в ексель 1-2 минуты
#30 by supremum
А с выводом?
#31 by teroinc
30 и не факт что выведется:(
#32 by supremum
Комментарий нужен?
#33 by Cthulhu
пятнично!
#34 by supremum
Рекомендую воспользоваться немного :) Записать(<?>,); Синтаксис: Записать(<ИмяФайла>,<ТипФайла>) Назначение: Записать таблицу в файл.
#35 by NS
И при чем тут казалось бы регистр?!...
#36 by NS
-->
#37 by teroinc
записать файл екселя? вместо показать? я правильно понял?
#38 by Cthulhu
и потом они возмущаются тем, что над ними глумятся.. а сами при том беззастенчиво и отчаянно глумятся над здравым смыслом..
#39 by supremum
NS проснулся! :) По сути, каждая операция типа ExcelApp.Cells(Ном,8).NumberFormat="@"; это есть обращение к Excel через OLE, что не есть быстрая операция.
#40 by supremum
Нужно просто вывести данные в таблицу и ее потом сохранить с помощью метода Записать (см. 34).
#41 by supremum
По работе с отчетами и выводе результатов в таблицу можно посмотреть тут
#42 by supremum
Вот более подробный пример
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С