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 Кб - загружено 1151 раз.)
|
|
Записан
|
|
|
|
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 » |
|
Давай - выгрузи структуру, которая нужна по задаче, и прицепи сюда в ответ (если влезет). Если нет - на мыло...
|
|
|
Записан
|
|
|
|
|