staff
|
|
« : 12-08-2009 08:50 » |
|
Есть набор формул, по которым должны вычисляться значения в Документе 1С, каким образом реализовать алгоритм вычисления? Например, есть формула W=(Q1-Q2)*100/Q1-Q где Q - вес пустой емкости, Q1 - вес с навеской до высушивания емкости, Q2 - вес с навеской после высушивания емкости. Как сделать, чтобы значения с "Поле ввода" подставлялись в формулу?
|
|
« Последнее редактирование: 13-09-2009 10:13 от Sel »
|
Записан
|
|
|
|
Dest
Опытный
Offline
|
|
« Ответ #1 : 12-08-2009 10:50 » |
|
Q - вес пустой емкости, Q1 - вес с навеской до высушивания емкости, Q2 - вес с навеской после высушивания емкости. Делаешь их реквизитами формы, или реквизитами документа. Потом создаешь три поля ввода и в свойствах "Источник" указываешь, по очереди каждый из параметров
|
|
« Последнее редактирование: 12-08-2009 10:53 от Dest »
|
Записан
|
|
|
|
staff
|
|
« Ответ #2 : 12-08-2009 11:00 » |
|
ну а код для вычисления как построить?
|
|
|
Записан
|
|
|
|
Dest
Опытный
Offline
|
|
« Ответ #3 : 12-08-2009 11:08 » |
|
Создаешь кнопку. Создаешь обработчик события "Нажатие" этой кнопки. Потом появляется в модуле формы процедура = там набираешь W=(Q1-Q2)*100/Q1-Q ; сообщить(W); Процедура КнопкаВыполнитьНажатие(Кнопка) W=(Q1-Q2)*100/Q1-Q ; сообщить(W);
КонецПроцедуры
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #4 : 14-08-2009 05:09 » |
|
еще у меня в Форма Документа находится несколько закладок, как сделать что бы информация по расчетам при нажатии кнопки ОК (Записать и Закрыть) сохранялися, так как на данный момент при нажатии ОК записывается только одно значение с первой закладки, а не со всех???
|
|
|
Записан
|
|
|
|
Dest
Опытный
Offline
|
|
« Ответ #5 : 16-08-2009 05:04 » |
|
А те значения, которые не записываются - это реквизиты документа? Или что?
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #6 : 31-08-2009 07:55 » |
|
необходима помощь в формировании отчета в которых принимают участие формулы для расчета
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #7 : 31-08-2009 08:04 » |
|
есть Документ -> ЦэхЭкстракции в котором все вычисления делаются по формулам расчета, данные отображаются так же в РегистрНакопления -> ЦэхЭкстракции, на данный момент составляю отчет в котором присущи все показатели и щас загвоздка, как сделать так что бы результаты расчетов анализа отображались в отчете
|
|
|
Записан
|
|
|
|
|
staff
|
|
« Ответ #9 : 31-08-2009 08:19 » |
|
щас попробую по примеру сделать
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #10 : 31-08-2009 08:36 » |
|
вопрос, если мне не надо вычислять остатки а просто что бы формировались данные последовательно какой надо выбрать тип РегистрыОстаткиИОбороты, РегистыОбороты или РегистрыОстатки?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #11 : 31-08-2009 09:00 » |
|
Если нужны движения за определенный период (по определенному документу) - тогда РегистрыНакопленияОбороты
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #12 : 31-08-2009 10:04 » |
|
сделал все какда давалось по ссылке и получилось вот такое
|
test.PNG (15.49 Кб - загружено 1065 раз.)
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #13 : 31-08-2009 10:06 » |
|
а хотелось что бы на против полей период, пользователь, смена, сторона, сырье стояли значения, а буквенные значения с результатами анализов находились ниже и без подпунктов
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #14 : 31-08-2009 10:38 » |
|
Поиграйся с параметрами конструктора - там сногое можно менять... Я пока не могу вникнуть что же ты хочешь получить
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #15 : 31-08-2009 11:11 » |
|
хотелось бы что бы так как слепил
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #16 : 31-08-2009 11:29 » |
|
если что то не понятно то я могу выложить выгрузку с наработками
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #17 : 31-08-2009 11:50 » |
|
А как должен выглядеть отчет если будет несколько строк с разными числовыми данными?
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #18 : 31-08-2009 11:58 » |
|
фактически так как я скинул файл так и должно происходить построение отчета, тока вместо букв будут стоять наименования анализов
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #19 : 31-08-2009 12:00 » |
|
и анализы будут проводиться раз в 2 часа
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #20 : 31-08-2009 12:48 » |
|
Я имею в виду как нужно показать данные, если в отчет попадут разные Период, Пользователь, Смена, Сырье...
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #21 : 03-09-2009 07:04 » |
|
нужна помощь что бы разобраться в формировании отчета, неодходимо что бы при добавлении нового результата анализов с новым пользователем происходило разделение от старых результатов, а так же что бы не происходило дублирование данных по одному пользователю + если будет один и тот же пользователь добавлялись результаты анализа без создания новых данных.
код процедуры формирования:
Процедура КнопкаСформироватьНажатие(Кнопка) // Вставить содержимое обработчика. Запрос= новый запрос; Запрос.Текст= "ВЫБРАТЬ | ЦэхЭкстракции.Пользователь КАК Пользователь, | ЦэхЭкстракции.Смена КАК Смена, | ЦэхЭкстракции.Сторона КАК Сторона, | ЦэхЭкстракции.Сырье КАК Сырье, | ЦэхЭкстракции.Регистратор как Регистратор, | СУММА(ЦэхЭкстракции.W) КАК W, | СУММА(ЦэхЭкстракции.X) КАК X, | СУММА(ЦэхЭкстракции.M1) КАК M1, | СУММА(ЦэхЭкстракции.Z) КАК Z, | СУММА(ЦэхЭкстракции.Y) КАК Y, | СУММА(ЦэхЭкстракции.A) КАК A |ИЗ | РегистрНакопления.ЦэхЭкстракции КАК ЦэхЭкстракции | |СГРУППИРОВАТЬ ПО | ЦэхЭкстракции.Пользователь, | ЦэхЭкстракции.Смена, | ЦэхЭкстракции.Сторона, | ЦэхЭкстракции.Сырье, | ЦэхЭкстракции.Регистратор |УПОРЯДОЧИТЬ ПО | Пользователь, | Смена, | Сторона, | Сырье, | Регистратор |ИТОГИ | СУММА(W), | СУММА(X), | СУММА(M1), | СУММА(Z), | СУММА(Y), | СУММА(A) |ПО | Пользователь, | Смена, | Сторона, | Сырье, | Регистратор |АВТОУПОРЯДОЧИВАНИЕ" ; Запрос.УстановитьПараметр("НачалоПериода", НачПериода); Запрос.УстановитьПараметр("КонецПериода", КонПериода); Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); темп = новый ТабличныйДокумент; ТабДок=ПолучитьМакет("Макет"); ОбластьМаркеровка=ТабДок.ПолучитьОбласть("Маркеровка"); Темп.Вывести(ОбластьМаркеровка); ОбластьПериод=ТабДок.ПолучитьОбласть("Период"); ОбластьПериод.Параметры.Период=" Период с "+НачПериода+" по "+КонПериода; Темп.Вывести(ОбластьПериод); ОбластьОтступ=ТабДок.ПолучитьОбласть("Отступ"); темп.Вывести(ОбластьОтступ); пока выборка.Следующий() цикл ОбластьПользователь=ТабДок.ПолучитьОбласть("Пользователь"); ОбластьПользователь.Параметры.Пользователь=Выборка.Пользователь; Темп.Вывести(ОбластьПользователь); ВыборкаСмена=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока ВыборкаСмена.Следующий() цикл ОбластьСмена=ТабДок.ПолучитьОбласть("Смена "); ОбластьСмена.Параметры.Смена=ВыборкаСмена.Смена; Темп.Вывести(ОбластьСмена); ВыборкаСторона=ВыборкаСмена.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока ВыборкаСторона.Следующий() цикл ОбластьСторона=ТабДок.ПолучитьОбласть("Сторона"); ОбластьСторона.Параметры.Сторона=ВыборкаСторона.Сторона; Темп.Вывести(ОбластьСторона); ВыборкаСырье=ВыборкаСторона.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока выборкаСырье.Следующий() цикл областьСырье=ТабДок.ПолучитьОбласть("Сырье"); ОбластьСырье.Параметры.Сырье=ВыборкаСырье.Сырье; темп.Вывести(ОбластьСырье); ВыборкаРегистратор=ВыборкаСырье.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьОписание=ТабДок.ПолучитьОбласть("Описание"); Темп.Вывести(ОбластьОписание);
пока выборкаРегистратор.Следующий() цикл если ВыборкаРегистратор.Регистратор<>Неопределено тогда ОбластьРегистратор=ТабДок.ПолучитьОбласть("Регистратор"); ОбластьРегистратор.Параметры.W=ВыборкаРегистратор.W; ОбластьРегистратор.Параметры.X=ВыборкаРегистратор.X; ОбластьРегистратор.Параметры.M1=ВыборкаРегистратор.M1; ОбластьРегистратор.Параметры.Z=ВыборкаРегистратор.Z; ОбластьРегистратор.Параметры.Y=ВыборкаРегистратор.Y; ОбластьРегистратор.Параметры.A=ВыборкаРегистратор.A; ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата; Темп.Вывести(ОбластьРегистратор); конецесли; ТабФорма=Отчеты.ЦэхЭкстракции.ПолучитьФорму("ФормаТаблицы"); ТабФорма.Открыть(); ТабФорма.ЭлементыФормы.Результат.Вывести(Темп);
конеццикла; конеццикла; конеццикла; конеццикла; конеццикла; КонецПроцедуры
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #22 : 03-09-2009 07:12 » |
|
1. из двух рисунков - какой парвильный? 2. выложи скриншот макета (с названиями областей)
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #23 : 03-09-2009 08:22 » |
|
обе фотки которые я скидывал это результаты отчета которые у меня получается а это work3 макет
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #24 : 03-09-2009 09:31 » |
|
"при добавлении нового результата ... разделение от старых результатов" - что имеется в виду под разделением? "что бы не происходило дублирование данных " - укажи где на рисунках видно что есть дублирование?
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #25 : 03-09-2009 09:45 » |
|
на фото видно, получается в один день провожу документ с одним пользователем в отчете (снимок) он самый первый идет, в этот же день добавил еще одну проводку с другим пользователем сделал обновление отчета и получилось что создались сначало пользователь Админ, потом Админ+Нева, потом сделал третью проводку и получилось Админ, Админ+Нева, Админ+Нева
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #26 : 03-09-2009 11:40 » |
|
попробовал сделать запрос отчета через Регистр Сведений, все равно происходит то что было и с Регистром Накопления, может сам запрос на формирование отчета надо переделать???
код формирования отчета: Процедура КнопкаСформироватьНажатие(Кнопка) // Вставить содержимое обработчика. Запрос= новый запрос; Запрос.Текст= "ВЫБРАТЬ | ЦэхЭкстракции.Пользователь КАК Пользователь, | ЦэхЭкстракции.Смена КАК Смена, | ЦэхЭкстракции.Сырье КАК Сырье, | ЦэхЭкстракции.Сторона КАК Сторона, | ЦэхЭкстракции.Регистратор КАК Регистратор, | СУММА(ЦэхЭкстракции.W) КАК W, | СУММА(ЦэхЭкстракции.X) КАК X, | СУММА(ЦэхЭкстракции.M1) КАК M1, | СУММА(ЦэхЭкстракции.Z) КАК Z, | СУММА(ЦэхЭкстракции.Y) КАК Y, | СУММА(ЦэхЭкстракции.A) КАК A |ИЗ | РегистрСведений.ЦэхЭкстракции КАК ЦэхЭкстракции | |СГРУППИРОВАТЬ ПО | ЦэхЭкстракции.Пользователь, | ЦэхЭкстракции.Смена, | ЦэхЭкстракции.Сырье, | ЦэхЭкстракции.Сторона, | ЦэхЭкстракции.Регистратор | |УПОРЯДОЧИТЬ ПО | Пользователь, | Смена, | Сырье, | Сторона, | Регистратор |ИТОГИ | СУММА(W), | СУММА(X), | СУММА(M1), | СУММА(Z), | СУММА(Y), | СУММА(A) |ПО | Пользователь, | Смена, | Сырье, | Сторона, | Регистратор |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("НачалоПериода", НачПериода); Запрос.УстановитьПараметр("КонецПериода", КонПериода); Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); темп = новый ТабличныйДокумент; ТабДок=ПолучитьМакет("Макет"); ОбластьМаркеровка=ТабДок.ПолучитьОбласть("Маркеровка"); Темп.Вывести(ОбластьМаркеровка); ОбластьПериод=ТабДок.ПолучитьОбласть("Период"); ОбластьПериод.Параметры.Период=" Период с "+НачПериода+" по "+КонПериода; Темп.Вывести(ОбластьПериод); ОбластьОтступ=ТабДок.ПолучитьОбласть("Отступ"); темп.Вывести(ОбластьОтступ); пока выборка.Следующий() цикл ОбластьПользователь=ТабДок.ПолучитьОбласть("Пользователь"); ОбластьПользователь.Параметры.Пользователь=Выборка.Пользователь; Темп.Вывести(ОбластьПользователь); ВыборкаСмена=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока ВыборкаСмена.Следующий() цикл ОбластьСмена=ТабДок.ПолучитьОбласть("Смена "); ОбластьСмена.Параметры.Смена=ВыборкаСмена.Смена; Темп.Вывести(ОбластьСмена); ВыборкаСторона=ВыборкаСмена.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока ВыборкаСторона.Следующий() цикл ОбластьСторона=ТабДок.ПолучитьОбласть("Сторона"); ОбластьСторона.Параметры.Сторона=ВыборкаСторона.Сторона; Темп.Вывести(ОбластьСторона); ВыборкаСырье=ВыборкаСторона.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока выборкаСырье.Следующий() цикл областьСырье=ТабДок.ПолучитьОбласть("Сырье"); ОбластьСырье.Параметры.Сырье=ВыборкаСырье.Сырье; темп.Вывести(ОбластьСырье); ВыборкаРегистратор=ВыборкаСырье.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьОписание=ТабДок.ПолучитьОбласть("Описание"); Темп.Вывести(ОбластьОписание);
пока выборкаРегистратор.Следующий() цикл если ВыборкаРегистратор.Регистратор<>Неопределено тогда ОбластьРегистратор=ТабДок.ПолучитьОбласть("Регистратор"); ОбластьРегистратор.Параметры.W=ВыборкаРегистратор.W; ОбластьРегистратор.Параметры.X=ВыборкаРегистратор.X; ОбластьРегистратор.Параметры.M1=ВыборкаРегистратор.M1; ОбластьРегистратор.Параметры.Z=ВыборкаРегистратор.Z; ОбластьРегистратор.Параметры.Y=ВыборкаРегистратор.Y; ОбластьРегистратор.Параметры.A=ВыборкаРегистратор.A; ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата; Темп.Вывести(ОбластьРегистратор); конецесли; ТабФорма=Отчеты.ЦэхЭкстракции.ПолучитьФорму("ФормаТаблицы"); ТабФорма.Открыть(); ТабФорма.ЭлементыФормы.Результат.Вывести(Темп);
конеццикла; конеццикла; конеццикла; конеццикла; конеццикла; КонецПроцедуры
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #27 : 03-09-2009 20:06 » |
|
Вместо РегистрСведений.ЦэхЭкстракции КАК ЦэхЭкстракции как минимум должно быть РегистрСведений.ЦэхЭкстракции.СрезПоследних(&ТекущаяДата, ) КАК ЦэхЭкстракции
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #28 : 04-09-2009 05:51 » |
|
быть может у меня сам запрос не правильно построен, сделал через "РегистрСведений.ЦэхЭкстракции.СрезПоследних(&ТекущаяДата, ) КАК ЦэхЭкстракции" по началу давало ошибку, устранил проблему, но все равно происходит повтор значений, может мне сделать выгрузку базы и ты ее посмотришь?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #29 : 04-09-2009 18:33 » |
|
Давай - выгрузи структуру, которая нужна по задаче, и прицепи сюда в ответ (если влезет). Если нет - на мыло...
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #30 : 11-09-2009 07:55 » |
|
Подскажите, пожалуйста, у меня фактически код отчета готов, но есть одна проблема: у меня не выводятся данные, если я ставлю РегистрНакопления.Цэх.ОстаткиИОбороты или РегистрНакопления.Цэх.Остатки или РегистрНакопления.Цэх.Обороты, а вот когда ставлю РегистрНакопления.Цэх, тогда выводятся данные, но не за определенную дату, а все даты с проводками.
код процедуры:
Процедура КнопкаСформироватьНажатие(Кнопка) // Вставить содержимое обработчика. Запрос= новый запрос; Запрос.Текст= "ВЫБРАТЬ | Цэх.Пользователь КАК Пользователь, | Цэх.Смена КАК Смена, | Цэх.Сторона КАК Сторона, | Цэх.Сырье КАК Сырье, | Цэх.Регистратор КАК Регистратор, | СУММА(Цэх.x) КАК x, | СУММА(Цэх.x1) КАК x1, | СУММА(Цэх.x2) КАК x2, | СУММА(Цэх.Aat) КАК Aat, | СУММА(Цэх.Mm) КАК Mm, | СУММА(Цэх.K2) КАК K2, | СУММА(Цэх.Mst) КАК Mst, | СУММА(Цэх.Ast) КАК Ast, | СУММА(Цэх.x3) КАК x3, | СУММА(Цэх.x4) КАК x4, | СУММА(Цэх.x5) КАК x5, | СУММА(Цэх.x7) КАК x7, | СУММА(Цэх.x6) КАК x6, | СУММА(Цэх.x8) КАК x8, | СУММА(Цэх.x9) КАК x9, | СУММА(Цэх.x10) КАК x10, | СУММА(Цэх.x14) КАК x14 |ИЗ | РегистрНакопления.Цэх КАК Цэх | |СГРУППИРОВАТЬ ПО | Цэх.Пользователь, | Цэх.Сырье, | Цэх.Сторона, | Цэх.Смена, | Цэх.Регистратор | |УПОРЯДОЧИТЬ ПО | Пользователь, | Смена, | Сторона, | Сырье, | Регистратор |ИТОГИ | СУММА(x), | СУММА(x1), | СУММА(x2), | СУММА(Aat), | СУММА(Mm), | СУММА(K2), | СУММА(Mst), | СУММА(Ast), | СУММА(x3), | СУММА(x4), | СУММА(x5), | СУММА(x7), | СУММА(x6), | СУММА(x8), | СУММА(x9), | СУММА(x10), | СУММА(x14) |ПО | Пользователь, | Смена, | Сторона, | Сырье, | Регистратор |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("НачалоПериода", НачПериода); Запрос.УстановитьПараметр("КонецПериода", КонПериода); Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); темп = новый ТабличныйДокумент; ТабДок=ЭтотОбъект.ПолучитьМакет("Макет"); ОбластьМаркеровка=ТабДок.ПолучитьОбласть("Маркеровка"); Темп.Вывести(ОбластьМаркеровка); ОбластьПериод=ТабДок.ПолучитьОбласть("Период"); ОбластьПериод.Параметры.Период=" Период с "+НачПериода+" по "+КонПериода; Темп.Вывести(ОбластьПериод); ОбластьОтступ=ТабДок.ПолучитьОбласть("Отступ"); пока выборка.Следующий() цикл ОбластьПользователь=ТабДок.ПолучитьОбласть("Пользователь"); ОбластьПользователь.Параметры.Пользователь=Выборка.Пользователь; Темп.Вывести(ОбластьПользователь); ВыборкаСмена=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока ВыборкаСмена.Следующий() цикл ОбластьСмена=ТабДок.ПолучитьОбласть("Смена "); ОбластьСмена.Параметры.Смена=ВыборкаСмена.Смена; Темп.Вывести(ОбластьСмена); ВыборкаСторона=ВыборкаСмена.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока ВыборкаСторона.Следующий() цикл ОбластьСторона=ТабДок.ПолучитьОбласть("Сторона"); ОбластьСторона.Параметры.Сторона=ВыборкаСторона.Сторона; Темп.Вывести(ОбластьСторона); ВыборкаСырье=ВыборкаСторона.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); пока выборкаСырье.Следующий() цикл областьСырье=ТабДок.ПолучитьОбласть("Сырье"); ОбластьСырье.Параметры.Сырье=ВыборкаСырье.Сырье; темп.Вывести(ОбластьСырье); ВыборкаРегистратор=ВыборкаСырье.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьОписание=ТабДок.ПолучитьОбласть("Описание"); Темп.Вывести(ОбластьОписание);
пока выборкаРегистратор.Следующий() цикл если ВыборкаРегистратор.Регистратор<>Неопределено тогда ОбластьРегистратор=ТабДок.ПолучитьОбласть("Регистратор"); ОбластьРегистратор.Параметры.x=ВыборкаРегистратор.x; ОбластьРегистратор.Параметры.x1=ВыборкаРегистратор.x1; ОбластьРегистратор.Параметры.x2=ВыборкаРегистратор.x2; ОбластьРегистратор.Параметры.Aat=ВыборкаРегистратор.Aat; ОбластьРегистратор.Параметры.Mm=ВыборкаРегистратор.Mm; ОбластьРегистратор.Параметры.K2=ВыборкаРегистратор.K2; ОбластьРегистратор.Параметры.Mst=ВыборкаРегистратор.Mst; ОбластьРегистратор.Параметры.Ast=ВыборкаРегистратор.Ast; ОбластьРегистратор.Параметры.x3=ВыборкаРегистратор.x3; ОбластьРегистратор.Параметры.x4=ВыборкаРегистратор.x4; ОбластьРегистратор.Параметры.x5=ВыборкаРегистратор.x5; ОбластьРегистратор.Параметры.x6=ВыборкаРегистратор.x6; ОбластьРегистратор.Параметры.x7=ВыборкаРегистратор.x7; ОбластьРегистратор.Параметры.x8=ВыборкаРегистратор.x8; ОбластьРегистратор.Параметры.x9=ВыборкаРегистратор.x9; ОбластьРегистратор.Параметры.x10=ВыборкаРегистратор.x10; ОбластьРегистратор.Параметры.x14=ВыборкаРегистратор.x14; ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата; Темп.Вывести(ОбластьРегистратор); конецесли; темп.Вывести(ОбластьОтступ); конеццикла; конеццикла; конеццикла; конеццикла; конеццикла; ТабФорма=Отчеты.Цэх.ПолучитьФорму("ФормаТаблицы"); ТабФорма.Открыть(); ТабФорма.ЭлементыФормы.Результат.Вывести(Темп); КонецПроцедуры
|
|
« Последнее редактирование: 24-09-2009 06:39 от Sel »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #31 : 11-09-2009 09:23 » |
|
Ну а собственно где у тебя в запросе ограничение по дате? Попробуй добавить такую строку: |ИЗ | РегистрНакопления.Цэх КАК Цэх | |ГДЕ | Цэх.Период МЕЖДУ &НачалоПериода И &КонецПериода | |СГРУППИРОВАТЬ ПО
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #32 : 11-09-2009 09:37 » |
|
выдало ошибку
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #33 : 11-09-2009 10:10 » |
|
Пробел перед Между
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #34 : 11-09-2009 10:27 » |
|
Извини, забыл поставить. И еще такое: когда выставляю период с 11,09,2009 по 11,09,2009, фактически ничего не выводится, так как берется еще плюс время 11.09.2009 0:00:00 по 11.09.2009 0:00:00. Как избавиться от времени (от 0:00:00), чтобы выдавало за день, или только надо ставить с 11.09.2009 по 12.09.2009 чтобы выводился день?
|
|
« Последнее редактирование: 24-09-2009 06:41 от Sel »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #35 : 11-09-2009 11:37 » |
|
В 1С 8.Х нет типа Дата в чистом виде - есть ДатаВремя (Timestamp), потому нужно указывать период с секундами Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачПериода)); Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонПериода));
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #36 : 11-09-2009 12:23 » |
|
я немного переделал строку |ГДЕ | Цэх.Период Между &НачалоДня И &КонецДня | а так же сам запрос с доработкой и получилось Запрос.УстановитьПараметр("НачалоДня", НачалоДня(НачПериода)); Запрос.УстановитьПараметр("КонецДня", КонецДня(КонПериода)); Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); темп = новый ТабличныйДокумент; ТабДок=ПолучитьМакет("Макет"); ОбластьМаркеровка=ТабДок.ПолучитьОбласть("Маркеровка"); Темп.Вывести(ОбластьМаркеровка); ОбластьПериод=ТабДок.ПолучитьОбласть("Период"); ОбластьПериод.Параметры.Период=" Период с "+Формат(НачПериода,"ДЛФ=DD")+" по "+Формат(КонПериода,"ДЛФ=DD"); Темп.Вывести(ОбластьПериод); большое спасибо за помощь ))) теперь выводится информация за определенный день без учета времени
|
|
|
Записан
|
|
|
|
staff
|
|
« Ответ #37 : 24-09-2009 06:27 » |
|
по поводу вывода времени проведения анализа во втором запросе у меня выдает ошибку "{Отчет.ОбщийОтчетПоРВОПОИМЭЦ.Форма.ФормаОтчета(182)}: Значение не является значением объектного типа (Дата) ОбластьРегистратор1.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата;"
что не хватает в коде?
код процедуры:
Процедура КнопкаСформироватьНажатие(Кнопка) // Вставить содержимое обработчика. Запрос= новый запрос; Запрос.Текст= "ВЫБРАТЬ | ЦэхРВОИПО.Смена КАК Смена, | ЦэхРВОИПО.Бригада КАК Бригада, | ЦэхРВОИПО.Регистратор КАК Регистратор, | ЦэхРВОИПО.Сторона КАК Сторона, | ЦэхРВОИПО.Пользователь КАК Пользователь, | ЦэхРВОИПО.Сырье КАК Сырье, | СУММА(ЦэхРВОИПО.W1) КАК W1, | СУММА(ЦэхРВОИПО.W) КАК W, | СУММА(ЦэхРВОИПО.W2) КАК W2, | СУММА(ЦэхРВОИПО.W3) КАК W3, | СУММА(ЦэхРВОИПО.W4) КАК W4, | СУММА(ЦэхРВОИПО.M3) КАК M3, | СУММА(ЦэхРВОИПО.M4) КАК M4, | СУММА(ЦэхРВОИПО.X) КАК X, | СУММА(ЦэхРВОИПО.X1) КАК X1, | СУММА(ЦэхРВОИПО.X2) КАК X2, | СУММА(ЦэхРВОИПО.X3) КАК X3, | СУММА(ЦэхРВОИПО.X4) КАК X4, | СУММА(ЦэхРВОИПО.X5) КАК X5, | СУММА(ЦэхРВОИПО.Y) КАК Y |ИЗ | РегистрНакопления.ЦэхРВОИПО КАК ЦэхРВОИПО |ГДЕ | ЦэхРВОИПО.Период МЕЖДУ &НачалоДня И &КонецДня | |СГРУППИРОВАТЬ ПО | ЦэхРВОИПО.Смена, | ЦэхРВОИПО.Бригада, | ЦэхРВОИПО.Регистратор, | ЦэхРВОИПО.Сторона, | ЦэхРВОИПО.Пользователь, | ЦэхРВОИПО.Сырье | |УПОРЯДОЧИТЬ ПО | Смена, | Бригада, | Регистратор, | Сторона, | Пользователь, | Сырье |ИТОГИ | СУММА(W1), | СУММА(W), | СУММА(W2), | СУММА(W3), | СУММА(W4), | СУММА(M3), | СУММА(M4), | СУММА(X), | СУММА(X1), | СУММА(X2), | СУММА(X3), | СУММА(X4), | СУММА(X5), | СУММА(Y) |ПО | Смена, | Бригада, | Регистратор, | Сторона, | Пользователь, | Сырье |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("НачалоДня", НачалоДня(НачПериода)); Запрос.УстановитьПараметр("КонецДня", КонецДня(КонПериода)); Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); темп = новый ТабличныйДокумент; ТабДок=ПолучитьМакет("Макет"); Пока Выборка.Следующий() цикл ОбластьДанные=ТабДок.ПолучитьОбласть("Данные"); ОбластьДанные.Параметры.Смена=Выборка.Смена; Темп.Вывести(ОбластьДанные); ВыборкаСводка=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); областьПро=ТабДок.ПолучитьОбласть("Про"); темп.Вывести(ОбластьПро); Пока ВыборкаСводка.Следующий() цикл ОбластьСводка=ТабДок.ПолучитьОбласть("Сводка"); ОбластьСводка.Параметры.Период=" Период с "+Формат(НачПериода,"ДЛФ=DD")+" по "+Формат(КонПериода,"ДЛФ=DD"); ОбластьСводка.Параметры.Бригада=ВыборкаСводка.Бригада; Темп.Вывести(ОбластьСводка); ВыборкаРегистратор=ВыборкаСводка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьНаименование=ТабДок.ПолучитьОбласть("Наименование"); темп.Вывести(ОбластьНаименование); Пока ВыборкаРегистратор.Следующий() цикл если ВыборкаРегистратор.Регистратор<>Неопределено тогда ОбластьРегистратор=ТабДок.ПолучитьОбласть("Регистратор"); ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата; Темп.Вывести(ОбластьРегистратор); конецесли; конеццикла; конеццикла; конеццикла; Запрос= новый запрос; Запрос.Текст= "ВЫБРАТЬ | ЦэхЭкстракции.Регистратор КАК Регистратор, | СУММА(ЦэхЭкстракции.W) КАК W, | СУММА(ЦэхЭкстракции.X) КАК X, | СУММА(ЦэхЭкстракции.M1) КАК M1, | СУММА(ЦэхЭкстракции.Z) КАК Z, | СУММА(ЦэхЭкстракции.Y) КАК Y, | СУММА(ЦэхЭкстракции.A) КАК A, | СУММА(ЦэхЭкстракции.x1) КАК x1, | СУММА(ЦэхЭкстракции.x2) КАК x2, | СУММА(ЦэхЭкстракции.x3) КАК x3, | СУММА(ЦэхЭкстракции.x5) КАК x5, | СУММА(ЦэхЭкстракции.x6) КАК x6, | СУММА(ЦэхЭкстракции.x10) КАК x10, | СУММА(ЦэхЭкстракции.x8) КАК x8, | СУММА(ЦэхЭкстракции.x9) КАК x9, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЦэхЭкстракции.OEP) КАК OEP, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЦэхЭкстракции.qqq) КАК qqq, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЦэхЭкстракции.qqqq) КАК qqqq, | СУММА(ЦэхЭкстракции.qwe) КАК qwe, | СУММА(ЦэхЭкстракции.qwq) КАК qwq, | СУММА(ЦэхЭкстракции.wqq) КАК wqq, | СУММА(ЦэхЭкстракции.wwq) КАК wwq |ИЗ | РегистрНакопления.ЦэхЭкстракции КАК ЦэхЭкстракции |ГДЕ | ЦэхЭкстракции.Период МЕЖДУ &НачалоДня И &КонецДня | |СГРУППИРОВАТЬ ПО | ЦэхЭкстракции.Регистратор | |УПОРЯДОЧИТЬ ПО | Регистратор |ИТОГИ | СУММА(W), | СУММА(X), | СУММА(M1), | СУММА(Z), | СУММА(Y), | СУММА(A), | СУММА(x1), | СУММА(x2), | СУММА(x3), | СУММА(x5), | СУММА(x6), | СУММА(x10), | СУММА(x8), | СУММА(x9), | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ OEP), | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ qqq), | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ qqqq), | СУММА(qwe), | СУММА(qwq), | СУММА(wqq), | СУММА(wwq) |ПО | Регистратор |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("НачалоДня", НачалоДня(НачПериода)); Запрос.УстановитьПараметр("КонецДня", КонецДня(КонПериода)); Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьДанные1=ТабДок.ПолучитьОбласть("Данные1"); темп.Вывести(ОбластьДанные1); ОбластьСводка1=ТабДок.ПолучитьОбласть("Сводка1"); темп.Вывести(ОбластьСводка1); пока выборка.Следующий() цикл ОбластьРегистратор1=ТабДок.ПолучитьОбласть("Регистратор1"); ОбластьРегистратор1.Параметры.Дата=ВыборкаРегистратор.Регистратор.Дата; темп.Вывести(ОбластьРегистратор1); конеццикла; ТабФорма=Отчеты.ОбщийОтчетПоРВОПОИМЭЦ.ПолучитьФорму("ФормаТаблицы"); ТабФорма.Открыть(); ТабФорма.ЭлементыФормы.Результат.Вывести(Темп);
КонецПроцедуры
|
|
|
Записан
|
|
|
|
|