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

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

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

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

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


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

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

и он делит оба значения, а нужно одно.
и второе чтоб на другое число разделил.
7. user5300 999 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 999 21.05.19 16:11 Сейчас в теме
Попробуй так
ОбластьПирожки = Макет.ПолучитьОбласть("Тесто2|Количество"); ///Выноси за цикл лучше
Пока Выборка2.Следующий() Цикл 
  
  ОбластьПирожки.Параметры.Пирожки =Выборка2.Итого/2 ;	
  ТабДокумент.Вывести(ОбластьПирожки); 

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

КонецЦикла;  
Показать
10. user1038192 21.05.19 16:16 Сейчас в теме
(9) Ну выводит также оба число только через строчку.
11. user5300 999 21.05.19 16:17 Сейчас в теме
14. user1038192 21.05.19 16:22 Сейчас в теме
(10)Мне нужно, чтоб второе число делил на 3, и выводил туда.но при этом не выводил первое делёное на 3.
Прикрепленные файлы:
18. VPanin56 527 22.05.19 07:00 Сейчас в теме
(14) Если уверен что в запросе всегда только два числа и нужно выводить только второе, варианта два
1) ставь в цикле костыль и пропускай первое
2) изменяй условия в запросе и получай только то что нужно выводить
20. user1038192 22.05.19 08:11 Сейчас в теме
(18)А как костыль поставить?
21. VPanin56 527 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 527 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 527 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 527 22.05.19 10:32 Сейчас в теме
(29) Если в запросе больше ДВУХ результатов , то такой костыль пропустит только Первый, но выведет второй и третий результаты, может быть поэтому у тебя две строки. ?
И уже делали замечание
Вот эту строку ОбластьХотдоги = Макет.ПолучитьОбласть("Тесто"); выведи из цикла, она должна быть ПЕРЕД циклом Пока

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

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

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

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день