Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: взаиморасчеты: нал и безнал отдельно
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
A1ex_2
добрый вечер. что я делаю не так. у меня есть РегистР накопления ВзаиморАсчеты, в нЕм есть Измерения: ТорговаяТочка, ДокументВзаиморАсчета и ФормаОплаты. проблема в том, что когда я списЫВАЮ сумму по ТорговойТочке Сумма списЫВАЕТСЯ с суммы НАЛа задолжЕнНости, а не отдельно с НАЛа и БЕЗНАЛа.


 ! 

Правила, п.2; Logist
 
pablo
Вы предлагаете, что бы мы протелепатировали Ваш код и сказали: "В 19 строчке Вы написали полнейшую чушь. Замените в ней все буквы О на А"?
A1ex_2
Цитата(pablo @ 20.09.12, 8:25) необходимо зарегистрироваться для просмотра ссылки
Вы предлагаете, что бы мы протелепатировали Ваш код и сказали: "В 19 строчке Вы написали полнейшую чушь. Замените в ней все буквы О на А"?



прошу прощениЯ

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

Запрос.УстановитьПараметр("Момент", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);

ВыборкаОбщая = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаОбщая.Следующий() Цикл
Если ВыборкаОбщая.Остаток=0 Тогда
Сообщить("Нет документов для взаимозачета!");
Отказ = Истина;
КонецЕсли;
Если НЕ отказ Тогда
Выборка = ВыборкаОбщая.Выбрать();
КСписанию = ВыборкаОбщая.Сумма;
Пока Выборка.Следующий() И КСписанию > 0 Цикл
Движение = Движения.Взаиморосчеты.ДобавитьРасход();
Списоваем = Мин(Выборка.Остаток, КСписанию);
Движение.Период = Дата;
Движение.ТорговаяТочка = ТорговаяТочка;
Движение.ДокументВзаиморасчетов = Выборка.ДокументВзаиморасчетов;
Движение.Сумма = Списоваем;
Движение.ФормаОплаты = ФормаОплаты;
КСписанию = КСписанию-Списоваем;


КонецЦикла;

КонецЕсли;

КонецЦикла;

КонецПроцедуры


 ! 

Правила п.2(Pablo),12(Matevi)
 
MATEVI
Передумал удалять Ваш код из поста. Оформил. В следующий раз будем просто удалять, если не прочтете правила.
pablo
Движение.ФормаОплаты = ФормаОплаты;

Так у Вас форма оплаты берется из документа, а не из остатков. Более того, Вы из запроса структуру текущей задолженности по форме оплаты и не получаете
A1ex_2
Цитата(pablo @ 20.09.12, 9:39) необходимо зарегистрироваться для просмотра ссылки
Движение.ФормаОплаты = ФормаОплаты;

Так у Вас форма оплаты берется из документа, а не из остатков. Более того, Вы из запроса структуру текущей задолженности по форме оплаты и не получаете




я просто новичок, можно как то объяснить для "чайника"?
pablo
Все зависит от того, как именно вам надо списывать Безнал задолженность. ТО есть, если каждой задолженности по 100 грн, а оплатили док на 80 грн, то откуда и сколько должно списаться? А если оплатили 150? А если 250?
pumbaE
Эх, достаточно было включить флажек в договоре "Вести рассчеты по документам расчета" и небыло бы необходимости создавать отдельный регистр, делать непонятные движения в документах и т.д.

p.s.: торговым все равно необходимо задолженность закрывать по каждой накладной, но и fifo тоже спасает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.