Помощь во внешней печатной форме

1. user1038192 21.05.19 15:52 Сейчас в теме
Здравствуйте, нужно чтоб из одного запроса одну строку делило на одно число, в другою строку делил на другое число.
Написал такой код делит все значения на одно число, может кто подскажет куда копать.

Запрос2 = Новый Запрос;
Запрос2.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос2.Текст ="ВЫБРАТЬ
| НарядНаПроизводствоИнгредиенты.Количество КАК Итого,
| НарядНаПроизводствоИнгредиенты.Номенклатура,
| НарядНаПроизводствоИнгредиенты.НомерСтроки КАК НомерСтроки
|ИЗ
| Документ.НарядНаПроизводство.Ингредиенты КАК НарядНаПроизводствоИнгредиенты
|ГДЕ
| НарядНаПроизводствоИнгредиенты.Ссылка = &ТекущийДокумент";

Макет = ПолучитьМакет("Накладная");

Выборка2 = Запрос2.Выполнить().Выбрать();
Пока Выборка2.Следующий() Цикл
ОбластьПирожки = Макет.ПолучитьОбласть("Тесто2|Количество");
ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;
ТабДокумент.Вывести(ОбластьПирожки);
КонецЦикла;


Выборка2.Итого - всегда будет только два значения.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
21. VPanin56 535 22.05.19 08:18 Сейчас в теме +0.05 $m
(20) ну если надо пропустить первый результат то хотя бы так можно

н=1;
Пока Выборка2.Следующий() Цикл 
  Если н=1 Тогда 
н=н+1;
Продолжить;
Иначе
  ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;    
  ТабДокумент.Вывести(ОбластьПирожки); 
КонецЕсли;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user5300 1010 21.05.19 15:59 Сейчас в теме
(1)запросы объедини и в цикле дели на нужные числа
4. user1038192 21.05.19 16:00 Сейчас в теме
(3)Можно по подробнее, пожалуйста.
5. user5300 1010 21.05.19 16:01 Сейчас в теме
(4)выложи первый запрос тоже
6. user1038192 21.05.19 16:07 Сейчас в теме
(5)Первый запрос он для тех же чисел но без деления,
Просто создал его же но с делением на 2
ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;

и он делит оба значения, а нужно одно.
и второе чтоб на другое число разделил.
7. user5300 1010 21.05.19 16:08 Сейчас в теме
8. user1038192 21.05.19 16:10 Сейчас в теме
(7)Функция ПечатьДокумента(СсылкаНаОбъект, СуммыВРублях = Ложь)
ТабДокумент = Новый ТабличныйДокумент;

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос.Текст ="ВЫБРАТЬ
| НарядНаПроизводствоСоставБлюд.Номенклатура КАК Наименование,
| НарядНаПроизводствоСоставБлюд.Количество КАК Количество,
| НарядНаПроизводствоСоставБлюд.Единица
|ИЗ
| Документ.НарядНаПроизводство.СоставБлюд КАК НарядНаПроизводствоСоставБлюд
|ГДЕ
| НарядНаПроизводствоСоставБлюд.Ссылка = &ТекущийДокумент";
Выборка = Запрос.Выполнить().Выбрать();


Запрос1 = Новый Запрос;
Запрос1.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос1.Текст ="ВЫБРАТЬ
| НарядНаПроизводствоСоставБлюд.Номенклатура КАК Ингредиент,
| НарядНаПроизводствоСоставБлюд.Количество КАК Количество1
|ИЗ
| Документ.НарядНаПроизводство.СоставБлюд КАК НарядНаПроизводствоСоставБлюд
|ГДЕ
| НарядНаПроизводствоСоставБлюд.Ссылка = &ТекущийДокумент";

Выборка1 = Запрос1.Выполнить().Выбрать();

Запрос2 = Новый Запрос;
Запрос2.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос2.Текст ="ВЫБРАТЬ
| НарядНаПроизводствоИнгредиенты.Количество КАК Итого,
| НарядНаПроизводствоИнгредиенты.Номенклатура,
| НарядНаПроизводствоИнгредиенты.НомерСтроки КАК НомерСтроки
|ИЗ
| Документ.НарядНаПроизводство.Ингредиенты КАК НарядНаПроизводствоИнгредиенты
|ГДЕ
| НарядНаПроизводствоИнгредиенты.Ссылка = &ТекущийДокумент";

Выборка2 = Запрос2.Выполнить().Выбрать();
Макет = ПолучитьМакет("Накладная");

Пока Выборка.Следующий() Цикл
ОбластьТовара = Макет.ПолучитьОбласть("Строка|Наименование");
ОбластьКоличества = Макет.ПолучитьОбласть("Строка|Количество");
ОбластьТовара.Параметры.Товар = Выборка.Наименование;
ОбластьКоличества.Параметры.Количество = Выборка.Количество;
ТабДокумент.Вывести(ОбластьТовара);
ТабДокумент.Присоединить(ОбластьКоличества);

КонецЦикла;

Пока Выборка2.Следующий() Цикл
ОбластьИтого = Макет.ПолучитьОбласть("Подвал|Количество");
ОбластьИтого.Параметры.Итого = Выборка2.Итого;
ОбластьНоменклатура = Макет.ПолучитьОбласть("Подвал|Наименование");
ОбластьНоменклатура.Параметры.Номенклатура = Выборка2.Номенклатура;
ТабДокумент.Вывести(ОбластьНоменклатура);
ТабДокумент.Присоединить(ОбластьИтого);

КонецЦикла;


Запрос3 = Новый Запрос;
Запрос3.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос3.Текст ="ВЫБРАТЬ
| НарядНаПроизводствоИнгредиенты.Количество КАК Итого,
| НарядНаПроизводствоИнгредиенты.Номенклатура,
| НарядНаПроизводствоИнгредиенты.НомерСтроки КАК НомерСтроки
|ИЗ
| Документ.НарядНаПроизводство.Ингредиенты КАК НарядНаПроизводствоИнгредиенты
|ГДЕ
| НарядНаПроизводствоИнгредиенты.Ссылка = &ТекущийДокумент";

Выборка3 = Запрос3.Выполнить().Выбрать();
Пока Выборка3.Следующий() Цикл
ОбластьПирожки = Макет.ПолучитьОбласть("Тесто2|Количество");
ОбластьПирожки.Параметры.Пирожки =Выборка3.Итого/2;
ТабДокумент.Вывести(ОбластьПирожки);
КонецЦикла;




ТабДокумент.АвтоМасштаб = Ложь;
ТабДокумент.РазмерКолонтитулаСверху = 0;
ТабДокумент.РазмерКолонтитулаСнизу = 0;
ТабДокумент.ПолеСверху = 10;
ТабДокумент.ПолеСлева = 10;
ТабДокумент.ПолеСнизу = 10;
ТабДокумент.ПолеСправа = 10;
ТабДокумент.Защита = Ложь;
ТабДокумент.ОтображатьГруппировки = Истина;
ТабДокумент.ОтображатьЗаголовки = Ложь;
ТабДокумент.ОтображатьСетку = Ложь;
ТабДокумент.ТолькоПросмотр = Истина;
ТабДокумент.Показать();

Возврат ТабДокумент;

КонецФункции // ПечатьДокумента()
2. VmvLer 21.05.19 15:58 Сейчас в теме
Написать такой код делит все значения на другое число
9. user5300 1010 21.05.19 16:11 Сейчас в теме
Попробуй так
ОбластьПирожки = Макет.ПолучитьОбласть("Тесто2|Количество"); ///Выноси за цикл лучше
Пока Выборка2.Следующий() Цикл 
  
  ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;	
  ТабДокумент.Вывести(ОбластьПирожки); 

  ОбластьПирожки.Параметры.Пирожки =Выборка2;	
  ТабДокумент.Вывести(ОбластьПирожки); 

КонецЦикла;  
Показать
10. user1038192 21.05.19 16:16 Сейчас в теме
(9) Ну выводит также оба число только через строчку.
11. user5300 1010 21.05.19 16:17 Сейчас в теме
14. user1038192 21.05.19 16:22 Сейчас в теме
(10)Мне нужно, чтоб второе число делил на 3, и выводил туда.но при этом не выводил первое делёное на 3.
Прикрепленные файлы:
18. VPanin56 535 22.05.19 07:00 Сейчас в теме
(14) Если уверен что в запросе всегда только два числа и нужно выводить только второе, варианта два
1) ставь в цикле костыль и пропускай первое
2) изменяй условия в запросе и получай только то что нужно выводить
20. user1038192 22.05.19 08:11 Сейчас в теме
(18)А как костыль поставить?
21. VPanin56 535 22.05.19 08:18 Сейчас в теме +0.05 $m
(20) ну если надо пропустить первый результат то хотя бы так можно

н=1;
Пока Выборка2.Следующий() Цикл 
  Если н=1 Тогда 
н=н+1;
Продолжить;
Иначе
  ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;    
  ТабДокумент.Вывести(ОбластьПирожки); 
КонецЕсли;
Показать
23. user1038192 22.05.19 08:46 Сейчас в теме
(21) а как для первого числа сделать?
24. user1038192 22.05.19 08:47 Сейчас в теме
(21)что бы второй пропустить результат.
25. VPanin56 535 22.05.19 08:54 Сейчас в теме
(24) да просто поменяй местами код в операторе Если Иначе

н=1;
Пока Выборка2.Следующий() Цикл 
Если н=1 Тогда 
     ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;    
   ТабДокумент.Вывести(ОбластьПирожки);
Иначе
    н=н+1;
    Продолжить; 
КонецЕсли;
Показать


и выведется результат только из первой выборки
26. user1038192 22.05.19 09:21 Сейчас в теме
(25)Все равно выводит оба результата
27. user1038192 22.05.19 09:47 Сейчас в теме
(25)В общем, в запросе написал ВЫБРАТЬ ПЕРВЫЕ 1.
Теперь выводит как нужно.
28. VPanin56 535 22.05.19 09:50 Сейчас в теме
(27) покажи кусок своего кода где вставил мой костыль, не может он выводить два раза при костыле
29. user1038192 22.05.19 10:15 Сейчас в теме
(28) Выборка4 = Запрос4.Выполнить().Выбрать();
н=1;
Пока Выборка4.Следующий() Цикл
Если н=1 Тогда
н=н+1;
Продолжить;
Иначе
ОбластьХотдоги = Макет.ПолучитьОбласть("Тесто");
ОбластьХотдоги.Параметры.Хотдоги =Выборка4.Итого/0.09/30 ;
ТабДокумент.Вывести(ОбластьХотдоги);
КонецЕсли;
30. VPanin56 535 22.05.19 10:32 Сейчас в теме
(29) Если в запросе больше ДВУХ результатов , то такой костыль пропустит только Первый, но выведет второй и третий результаты, может быть поэтому у тебя две строки. ?
И уже делали замечание
Вот эту строку ОбластьХотдоги = Макет.ПолучитьОбласть("Тесто"); выведи из цикла, она должна быть ПЕРЕД циклом Пока

Напиши перед циклом Пока

Сообщить("В запросе 4 "+Выборка4.Количество()+" результатов");

и поймешь сколько раз тебе выведется строка, если костыль пропускает только Первый результат
12. user1038192 21.05.19 16:18 Сейчас в теме
(9) если создать два запроса и цикла. можно будет как то убрать из первого второе значение (для отображения в таб.части.) и из второго первое
13. user5300 1010 21.05.19 16:22 Сейчас в теме
Сделай одним запросом, все проще должно быть
ВЫБРАТЬ 
	|	НарядНаПроизводствоИнгредиенты.Количество КАК Итого,
        |	НарядНаПроизводствоИнгредиенты.Количество /2 КАК Итого2, 
	|	НарядНаПроизводствоИнгредиенты.Номенклатура, 
	|	НарядНаПроизводствоИнгредиенты.НомерСтроки КАК НомерСтроки 
	|ИЗ 
	|	Документ.НарядНаПроизводство.Ингредиенты КАК НарядНаПроизводствоИнгредиенты 
	|ГДЕ 
	|	НарядНаПроизводствоИнгредиенты.Ссылка = &ТекущийДокумент
Показать
15. user1038192 21.05.19 16:25 Сейчас в теме
(13)да это сделаю, просто это черновой вариант, основную задачу нужно сделать
16. user5300 1010 21.05.19 16:27 Сейчас в теме
(15)не совсем понятно, нарисуй в экселе результат и покажи
17. user5300 1010 21.05.19 16:34 Сейчас в теме
(15) вот так имеется ввиду? или как?
Прикрепленные файлы:
19. user1038192 22.05.19 08:10 Сейчас в теме
(17)Вот
Прикрепленные файлы:
22. VPanin56 535 22.05.19 08:23 Сейчас в теме
У тебя в результате Запроса2 какие значения получаются ? Два одинаковых или одно значение? тебе нужно первое вывести в одной строке и ничего с ним не делать, а второе вывести в другой строке и его поделить на 2 или 3 ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот