1. user1038192 21.05.19 15:52 Сейчас в теме

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

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

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

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

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


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

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

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

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

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

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

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

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

Вакансии

Программист 1С
Ижевск
зарплата от 70 000 руб. до 94 000 руб.
Полный день

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

Программист 1С
Санкт-Петербург
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день