#0
by teroinc
Уважаемые коллеги, подскажите пожалуйсто где можно найти обработку - выполняющую следующую функцию: корректную чистку регистра оборотов в 1с 7.7 торговле sql. Заранее безмерно благодарен!!!
#10
by teroinc
если отчет формируется долго, я так понимаю надо сделать тестирование и исправление ИБ?
#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; Таб.ВывестиСекцию("Итого"); Таб.ТолькоПросмотр; Таб.Показать("Сформировать", ""); КонецПроцедуры
#23
by teroinc
ПродажиЮМ измерения Фирма ДатаОтгрузки Товар Контрагент Ответственный АдресДоставки ресурсы Объем
#28
by supremum
+ Вот эти измерения можно было бы убрать в реквизиты. ДатаОтгрузки Ответственный АдресДоставки
#34
by supremum
Рекомендую воспользоваться немного :) Записать(<?>,); Синтаксис: Записать(<ИмяФайла>,<ТипФайла>) Назначение: Записать таблицу в файл.
#38
by Cthulhu
и потом они возмущаются тем, что над ними глумятся.. а сами при том беззастенчиво и отчаянно глумятся над здравым смыслом..
#39
by supremum
NS проснулся! :) По сути, каждая операция типа ExcelApp.Cells(Ном,8).NumberFormat="@"; это есть обращение к Excel через OLE, что не есть быстрая операция.
#40
by supremum
Нужно просто вывести данные в таблицу и ее потом сохранить с помощью метода Записать (см. 34).
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Продажи писать в регистр сведений!
- Как номер документа в СКД вывести без нулей и пробелов?
- Можно ли на базовой бухгалтерии запускать внешние обработки?
- Кладр для Украины. Это фантастика?
- Представление объекта в запросе
- Регистр "СоответствиеОбъектовДляОбмена"
- Не могу задать отбор по подразденению в отчете "Анализ начисл. налогов и взносов" ЗУП
- не загружается кладр в 1с 8
- 1C++, прямые запросы к ДБФ
- Зик 7.7. Расчет оплаты за работу в выходные и праздничные дни. Как?
- бюджет инвентарная карточка ОС-6 ошибка печати
- Бух. бюдж Справочник категорий довольствующихся
- ЗУП 8.1 Как задать условие в тексте запроса?
- Параметры сеанса и права в типовой УПП
- Как при выводе сводной таблице сделать так, чтобы отображались "плюсики"?
- Кто знает, как учесть розничную выручку в УПП?
- Ошибка реестра кластера сервера. Не хватает свободного места
- Модуль печати двумерного штрих-кода
- Не рассчитывает больничный лист (Комплексная 494)
- УПП, Версионирование объектов.