Документ "Ведомость на выплату зарплаты в банк", как получить значение "КВыплате"?

1. user1078168 10.07.19 06:24 Сейчас в теме
Добрый день! Конфигурация ЗУП 3.1.8.216. Документ "Ведомость на выплату зарплаты в банк", поле "К выплате". Значение введено вручную. Как получить значение "КВыплате" из самого документа, например, для внешней обработки?

Есть запрос:

Запрос = Новый Запрос; 
Запрос.УстановитьПараметр("Физлицо",	Физлицо); 

Запрос.Текст = 
"ВЫБРАТЬ 
|ВедомостьНаВыплатуЗарплатыВБанкЗарплата.ФизическоеЛицо КАК ФизЛицо, 
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.КВыплате КАК СуммаКПеречислению 
| 
|ИЗ 
| Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьНаВыплатуЗарплатыВБанкЗарплата 
|ГДЕ ВедомостьНаВыплатуЗарплатыВБанкЗарплата.ФизическоеЛицо=&Физлицо"; 

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

СуммаКВыплате = Новый Структура("ФизЛицо, СуммаКПеречислению"); 

Если Выборка.Следующий() Тогда 
Возврат Выборка; 
КонецЕсли; 

Возврат ""; 
Показать


Далее по тексту вызов
ОбластьСтрока.Параметры.СуммаП=ЗарплатаКВыплате(Физлицо).СуммаКПеречислению;


В итоге имеем неизвестно из каких регистров притянутые суммы, а не то что в документе. Прошу помощи, можно прям носом ткнуть.
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. catena 110 10.07.19 06:37 Сейчас в теме
А условие на документ кто ставить будет?
YannikAlx; +1 Ответить
6. user1078168 10.07.19 10:52 Сейчас в теме
(2)А по-подробнее? На примере каком-нибудь? Пожа-а-а-а-а-алуйста! Мозг кипит. Чувствую мелочь какая-то, а где понять не могу.
7. catena 110 10.07.19 11:00 Сейчас в теме
(6)Вы хотите из конкретного документа суммы? Почему условие на физлицо вы в запрос добавили, а на документ нет? У вас выборка из всех документов в базе.
8. YannikAlx 43 10.07.19 11:11 Сейчас в теме
(6) Надеюсь вы поняли (7)...
Но на всякий случай... - Вы делаете выборку из документа "Ведомость на выплату зарплаты в банк" , из какого конкретно документа ( где ссылка на документ ) вы хотите увидеть данные вы не указываете нигде...

Поэтому завпрос выдает все документы "Ведомость на выплату зарплаты в банк" и вы берете первый из всех для вывода

Если Выборка.Следующий() Тогда
Возврат Выборка;
КонецЕсли;


Можете увидеть какое количество документов в вашей выборке -
Выборка.Количество()
3. leosoft 165 10.07.19 09:26 Сейчас в теме
А про группировку слышали?
4. YannikAlx 43 10.07.19 09:54 Сейчас в теме
(3) Какая группировка ? Зачем?
данные берутся из одного документа, возможно из каждого для физ лица.
Но уж группировать точно нечего....
5. user1078168 10.07.19 10:50 Сейчас в теме
(3)Слышали, пробовали, группировка здесь неуместна.
9. leosoft 165 10.07.19 12:59 Сейчас в теме
Без группировки получите несколько записей для одного документа т.к. сумм к выплате может быть несколько. Аванс, например, с минусом идет...
10. user1078168 11.07.19 06:16 Сейчас в теме
(9)Если Вы имеете ввиду группировку по Физлицу, то в результате получаются неимоверные суммы. Возможно связано с переходом с 2.5 (как вариант). Мне нужно - что введено, то и получаем (пример: подотчет - ни какого отношения к зп не имеет). Выход - ссылка на документ. Осталось добить где и как :)
11. catena 110 11.07.19 06:34 Сейчас в теме
(10)Вы смеетесь? Или код в (1) не ваш? У вас в запросе выборка из всех документов, поэтому сейчас при группировке по физлицу вы и получаете все суммы к выплате из всех документов. Добавьте в запрос условие на документ, рядом с условием по физлицу.



|ИЗ 
| Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьНаВыплатуЗарплатыВБанкЗарплата 
|ГДЕ ВедомостьНаВыплатуЗарплатыВБанкЗарплата.ФизическоеЛицо=&Физлицо
|   И ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка=&Ссылка"; 


А группировка нужна, если в одном документе у вас по одному физлицу несколько строк.
12. user1078168 11.07.19 06:41 Сейчас в теме
(11)Код мой и мне не смешно
13. kuzyaa 2 11.07.19 09:42 Сейчас в теме
(12) зачем тебе структура СуммаКВыплате если она не используется... И тебе сказали если для внешней обработки то ткни СсылкуНаОбъект и передай эту ссылку в запрос и добавь в условие на документ по этой ссылке.
14. user1078168 16.07.19 08:24 Сейчас в теме
(13)Ссылку в запрос добавила, параметр добавила... а она мне
"Значение не является значением объектного типа (СуммаКПеречислению)
ОбластьСтрока.Параметры.СуммаП=ЗарплатаКВыплате(Физлицо, ЭтотОбъект).СуммаКПеречислению"

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

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



 
Возврат Выборка; 


КонецФункции""
Показать


Вызов
""Сумма = ЗарплатаКВыплате(Физлицо,СсылкаНаДокумент);
ОбластьСтрока.Параметры.СуммаП=Сумма.СуммаКПеречислению;""



Если обработка на уф то все немного круче
16. user1078168 18.07.19 11:41 Сейчас в теме
(15)
У меня внешняя печатная форма. Ошибку "Значение не является значением объектного типа..." я исправила. Теперь у меня значение СуммаКПеречислению выводится пустое.
Структуру СуммаКВыплате убрала.
17. kuzyaa 2 18.07.19 15:15 Сейчас в теме
(16) надо целиком видеть ваш код. и проверьте запрос в консоли возвращает ли он то что вам надо.
18. user1078168 19.07.19 11:51 Сейчас в теме
(17)
Функция ЗарплатаКВыплате(Физлицо, Ссылка,СуммаКПеречислению) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Физлицо",	Физлицо);
	Запрос.УстановитьПараметр("Ссылка",	"%"+Ссылка+"%");
	
	Запрос.Текст = 
	"ВЫБРАТЬ 
	|ВедомостьНаВыплатуЗарплатыВБанкЗарплата.ФизическоеЛицо КАК Физлицо,
    | ВедомостьНаВыплатуЗарплатыВБанкЗарплата.КВыплате КАК СуммаКПеречислению
	|
    |ИЗ 
    | Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьНаВыплатуЗарплатыВБанкЗарплата
    |ГДЕ ВедомостьНаВыплатуЗарплатыВБанкЗарплата.ФизическоеЛицо=&Физлицо
	|   И ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка = &Ссылка ";
	
Выборка = Запрос.Выполнить().Выбрать();

Сообщить("У "+Физлицо+" к выплате "+СуммаКПеречислению);
Возврат Выборка;

	КонецФункции
Показать


Сумма = ЗарплатаКВыплате(Физлицо,СсылкаНаДокумент,СуммаКПеречислению);
ОбластьСтрока.Параметры.СуммаП=Сумма.СуммаКПеречислению;


...и вот что у меня получается (проверка в консоли запросов и вывод сообщения)
Прикрепленные файлы:
19. kuzyaa 2 20.07.19 01:06 Сейчас в теме
(18) )) нагородили, только начинаете разбираться в этом ODIN ASS?)

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

"Сообщить("У "+Физлицо+" к выплате "+СуммаКПеречислению);"

Выборка.Следующий();////////////////////////////////////////////////////////////­//////////
Возврат Выборка.СуммаКПеречислению;

    КонецФункции
Показать


ОбластьСтрока.Параметры.СуммаП=ЗарплатаКВыплате(Физлицо,СсылкаНаДокумент",СуммаКПеречислению");


Не нужное зачеркнуто)
А нужное это спозиционироваться на Следующем элементе выборки..... Либо выгрузить весь результат запроса и перебрать циклом для каждого..



В БП 3.0 ВнешняяОбработка

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

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

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