Доброго всем времени суток. При печати чека из ПКО в него попадают позиции из прошлых реализаций, по которым есть задолженность.
Хотелось бы понять насколько данные поведение системы логично.
К примеру было сделано 5 реализаций. после 5 реализации Делается приходник на 5-ую, с печатью чека ПКО.
В движениях ПКО, регистры "плановые оплаты клиентов" и "плановые оплаты по срокам" будет стоять 1-ая реализация.
и соответственно её же берет при печати чека. Сумма оплаты сохраняется из текущего чека.
Прикрепляюю скрин чека на всякий случай.
Хотелось бы понять насколько данные поведение системы логично.
К примеру было сделано 5 реализаций. после 5 реализации Делается приходник на 5-ую, с печатью чека ПКО.
В движениях ПКО, регистры "плановые оплаты клиентов" и "плановые оплаты по срокам" будет стоять 1-ая реализация.
и соответственно её же берет при печати чека. Сумма оплаты сохраняется из текущего чека.
Прикрепляюю скрин чека на всякий случай.
Прикрепленные файлы:

По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Хотелось бы понять насколько данные поведение системы логично.
ИМХО, абсолютно логично - вы осуществили предыдущие реализации в кредит (в долг), теперь после уплаты у вас идет "ОПЛАТА КРЕДИТА".
В движениях ПКО, регистры "плановые оплаты клиентов" и "плановые оплаты по срокам" будет стоять 1-ая реализация.
и соответственно её же берет при печати чека.
Пральна, а вы бы какую хотели? Третью? Или пятую, последнюю, а про предыдущие 4 - забыть?
и соответственно её же берет при печати чека.
(3)
Или это всё не так?
печатать в чеке для 5 покупателя, товары из 1-го чека покупателя, думаю нет
Так ведите раздельный учет по реальным покупателям (контрагентам), тогда все будет и проводиться, и печататься нормально, а то сейчас, судя по скриншоту, у вас все они свалены в одну кучу под названием "Частное лицо". И что вы после этого хотите? Чтобы программа сама разобралась, что "Частное лицо" в первой реализации - это совсем не то "Частное лицо", которое в пятой?
Или это всё не так?
(4)
Рассуждение абсолютно верное, не понятно в данной ситуации только одно, почему в той же логике в УТ 11.4 до обновления всё работало. Проверил сейчас на копии (до перехода на 11.5), делаю три реализации, закрываю последнюю (4354) приходником с неё печатаю чек. Чек выходит на последнюю реализацию. В движениях в регистрах по "плановые оплаты клиентов" и "плановые оплаты по срокам" стоит документ план и расчетный документ 4352. Но чек печатается на 4254 (текущую, которая и стоит в документе основании), вот и вопрос где же правильно?
Рассуждение абсолютно верное, не понятно в данной ситуации только одно, почему в той же логике в УТ 11.4 до обновления всё работало. Проверил сейчас на копии (до перехода на 11.5), делаю три реализации, закрываю последнюю (4354) приходником с неё печатаю чек. Чек выходит на последнюю реализацию. В движениях в регистрах по "плановые оплаты клиентов" и "плановые оплаты по срокам" стоит документ план и расчетный документ 4352. Но чек печатается на 4254 (текущую, которая и стоит в документе основании), вот и вопрос где же правильно?
(7)
(8)
вот сейчас к этому и пришли ,чуток доработал заказ под наши нужды, дописал обработки по снятию резервов и закрытию заказов.
На этой неделе тестируем работу с заказами. Следующий шаг будет формирование автоматических приходных ордеров при проведении реализации. Но это в нашем случае, потому что у нас подразумевается, что если реализацию отбили значит товар продан. Если будут формироваться автоматически ПКО, то и соответственно не будет копится задолженность и не будет печататься товар из предыдущих накладных
(8)
вот сейчас к этому и пришли ,чуток доработал заказ под наши нужды, дописал обработки по снятию резервов и закрытию заказов.
На этой неделе тестируем работу с заказами. Следующий шаг будет формирование автоматических приходных ордеров при проведении реализации. Но это в нашем случае, потому что у нас подразумевается, что если реализацию отбили значит товар продан. Если будут формироваться автоматически ПКО, то и соответственно не будет копится задолженность и не будет печататься товар из предыдущих накладных
(9) Еще как вариант можно попробовать убрать учет взаиморасчетов по договорам, оставить только по заказам, а заказ (раз не использовали) в настройках же - использовать только как счет. Теоретически может получиться. Правда, с 11.5 пока не знакомился даже, все по 11.4, может отличаться
(18) Если мне не изменяет память, решил так, это общий модуль ВзаиморасчетыСервер:
&Вместо("ЗаполнитьТаблицуОстатковРасчетов")
Процедура УЛ_ЗаполнитьТаблицуОстатковРасчетов(Реквизиты, АдресПлатежейВХранилище, ТаблицаОстатковРасчетов, ДополнительныеОтборы = Неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ВалютаДокумента", Реквизиты.Валюта);
Запрос.УстановитьПараметр("ПоВсемКонтрагентам", Не ЗначениеЗаполнено(Реквизиты.Контрагент));
Запрос.УстановитьПараметр("Контрагент", Реквизиты.Контрагент);
Запрос.УстановитьПараметр("ПоВсемПартнерам", Не ЗначениеЗаполнено(Реквизиты.Партнер));
Запрос.УстановитьПараметр("Партнер", Реквизиты.Партнер);
Запрос.УстановитьПараметр("ПартнерПрочиеОтношения", Реквизиты.ПартнерПрочиеОтношения);
Запрос.УстановитьПараметр("Период", ?(Реквизиты.Дата <> '00010101',Реквизиты.Дата, ТекущаяДатаСеанса()));
УчитыватьФилиалы = ?(Реквизиты.Свойство("УчитыватьФилиалы"), Реквизиты.УчитыватьФилиалы, Истина);
Если УчитыватьФилиалы И ТипЗнч(Реквизиты.Организация) <> Тип("Массив") Тогда
ГоловнаяОрганизация = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Реквизиты.Организация,"ГоловнаяОрганизация");
Если ГоловнаяОрганизация = Реквизиты.Организация Тогда
ГоловнаяОрганизация = Неопределено;
ЭтоГоловнаяОрганизация = Истина;
Иначе
ЭтоГоловнаяОрганизация = Ложь;
КонецЕсли;
Иначе
ЭтоГоловнаяОрганизация = Ложь;
ГоловнаяОрганизация = Неопределено;
КонецЕсли;
Запрос.УстановитьПараметр("Организация", Реквизиты.Организация);
Запрос.УстановитьПараметр("ЭтоГоловнаяОрганизация", ЭтоГоловнаяОрганизация);
Запрос.УстановитьПараметр("ГоловнаяОрганизация", ГоловнаяОрганизация);
Запрос.УстановитьПараметр("ДебиторскаяЗадолженность", Реквизиты.ПодборДебиторскойЗадолженности);
Запрос.УстановитьПараметр("ТолькоБезусловнаяЗадолженность", Реквизиты.ПодборТолькоБезусловнойЗадолженности);
Если Реквизиты.Свойство("ХозяйственнаяОперация") Тогда
СтатьяДвиженияДенежныхСредств =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(
Реквизиты.ХозяйственнаяОперация);
Иначе
СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка();
КонецЕсли;
Запрос.УстановитьПараметр("СтатьяДвиженияДенежныхСредств", СтатьяДвиженияДенежныхСредств);
УстановитьПривилегированныйРежим(Истина);
ТекстЗапроса = "
|ВЫБРАТЬ
| РасшифровкаПлатежа.ОбъектРасчетов КАК ОбъектРасчетов,
| РасшифровкаПлатежа.Партнер КАК Партнер,
| РасшифровкаПлатежа.ВалютаВзаиморасчетов КАК Валюта,
| РасшифровкаПлатежа.Сумма КАК Сумма
|
|ПОМЕСТИТЬ ТаблицаПлатежей
|ИЗ
| &РасшифровкаПлатежа КАК РасшифровкаПлатежа
|;
|///////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Филиалы.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ЦентрализованныеДоговоры
|ИЗ
| Справочник.ДоговорыКонтрагентов.Филиалы КАК Филиалы
|ГДЕ
| Филиалы.Организация = &Организация
|;
|///////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОбъектыРасчетов.Ссылка КАК ОбъектРасчетов,
| ОбъектыРасчетов.Объект КАК Объект,
| ОбъектыРасчетов.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
|ПОМЕСТИТЬ ОбъектыРасчетов
|ИЗ
| Справочник.ОбъектыРасчетов КАК ОбъектыРасчетов
|ГДЕ
| (ОбъектыРасчетов.Организация В (&Организация)
| ИЛИ НЕ &ЭтоГоловнаяОрганизация
| И ОбъектыРасчетов.Договор В (ВЫБРАТЬ Ссылка ИЗ ЦентрализованныеДоговоры)
| И (ОбъектыРасчетов.Организация = &ГоловнаяОрганизация
| ИЛИ ОбъектыРасчетов.Договор.РазрешаетсяПередачаОплатМеждуФилиалами)
| ИЛИ &ЭтоГоловнаяОрганизация
| И ОбъектыРасчетов.Организация.ГоловнаяОрганизация В (&Организация)
| И ОбъектыРасчетов.Организация.ДопускаютсяВзаиморасчетыЧерезГоловнуюОрганизацию)
| И (ОбъектыРасчетов.Партнер = &Партнер ИЛИ &ПоВсемПартнерам)
| И (ОбъектыРасчетов.Контрагент = &Контрагент ИЛИ &ПоВсемКонтрагентам)
| И (&ПартнерПрочиеОтношения И ОбъектыРасчетов.Партнер.ПрочиеОтношения
| ИЛИ НЕ &ПартнерПрочиеОтношения)
|
| И (ОбъектыРасчетов.Ссылка <> Значение(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
| И ОбъектыРасчетов.Договор.Статус <> Значение(Перечисление.СтатусыДоговоровКонтрагентов.Закрыт))
|
|ИНДЕКСИРОВАТЬ ПО
| ОбъектРасчетов
|;
|///////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| ОбъектыРасчетов.ОбъектРасчетов КАК ОбъектРасчетов,
| ВалютыИКурсыДокументов.КурсЧислительВалютыВзаиморасчетов КАК КурсЧислительВалютыВзаиморасчетов,
| ВалютыИКурсыДокументов.КурсЗнаменательВалютыВзаиморасчетов КАК КурсЗнаменательВалютыВзаиморасчетов,
| ВалютыИКурсыДокументов.КурсЧислительВалютыУправленческогоУчета КАК КурсЧислительВалютыУправленческогоУчета,
| ВалютыИКурсыДокументов.КурсЗнаменательВалютыУправленческогоУчета КАК КурсЗнаменательВалютыУправленческогоУчета,
| ВалютыИКурсыДокументов.КурсЧислительВалютыДокумента КАК КурсЧислительВалютыДокумента,
| ВалютыИКурсыДокументов.КурсЗнаменательВалютыДокумента КАК КурсЗнаменательВалютыДокумента,
| ВалютыИКурсыДокументов.ВалютаДокумента КАК ВалютаДокумента,
| ВалютыИКурсыДокументов.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ОтносительныеКурсыВалютСрезПоследних.КурсЧислитель КАК КурсЧислительПеременный,
| ОтносительныеКурсыВалютСрезПоследних.КурсЗнаменатель КАК КурсЗнаменательПеременный
|ИЗ
| ОбъектыРасчетов КАК ОбъектыРасчетов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВалютыИКурсыДокументов КАК ВалютыИКурсыДокументов
| ПО ОбъектыРасчетов.Объект = ВалютыИКурсыДокументов.Документ,
| РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(
| &Период,
| Валюта = &ВалютаДокумента
| И БазоваяВалюта В
| (ВЫБРАТЬ
| Т.ВалютаРегламентированногоУчета
| ИЗ
| ОбъектыРасчетов КАК Т)) КАК ОтносительныеКурсыВалютСрезПоследних
|
|;
|///////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ &ТекстЗапросаРасчеты
|
|УПОРЯДОЧИТЬ ПО
| Организация,
| Контрагент,
| Дата,
| Номер
|";
Если Реквизиты.ТипРасчетов = Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом Тогда
ТекстЗапроса = СтрЗаменить(
ТекстЗапроса,
"ВЫБРАТЬ &ТекстЗапросаРасчеты",
ТекстЗапросаПоОстаткамРасчетовСКлиентами());
Иначе
ТекстЗапроса = СтрЗаменить(
ТекстЗапроса,
"ВЫБРАТЬ &ТекстЗапросаРасчеты",
ТекстЗапросаПоОстаткамРасчетовСПоставщиками());
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Если ЗначениеЗаполнено(АдресПлатежейВХранилище) Тогда
РасшифровкаПлатежа = ПолучитьИзВременногоХранилища(АдресПлатежейВХранилище);
Если РасшифровкаПлатежа.Колонки.Найти("Партнер") = Неопределено Тогда
РасшифровкаПлатежа.Колонки.Добавить("Партнер", Новый ОписаниеТипов("СправочникСсылка.Партнеры"));
РасшифровкаПлатежа.ЗаполнитьЗначения(Реквизиты.Партнер, "Партнер");
КонецЕсли;
Иначе
Если ТаблицаОстатковРасчетов = Неопределено Тогда
РасшифровкаПлатежа = Новый ТаблицаЗначений;
РасшифровкаПлатежа.Колонки.Добавить("ОбъектРасчетов", Новый ОписаниеТипов("СправочникСсылка.ОбъектыРасчетов"));
РасшифровкаПлатежа.Колонки.Добавить("Партнер", Новый ОписаниеТипов("СправочникСсылка.Партнеры"));
РасшифровкаПлатежа.Колонки.Добавить("ВалютаВзаиморасчетов", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
РасшифровкаПлатежа.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
Иначе
РасшифровкаПлатежа = ТаблицаОстатковРасчетов.Выгрузить(,).СкопироватьКолонки();
КонецЕсли;
КонецЕсли;
РасшифровкаПлатежа.Свернуть("ОбъектРасчетов, Партнер, ВалютаВзаиморасчетов", "Сумма");
Если РасшифровкаПлатежа.Количество() = 1 И Не ЗначениеЗаполнено(РасшифровкаПлатежа[0].ОбъектРасчетов) Тогда
РасшифровкаПлатежа.Очистить();
КонецЕсли;
Запрос.УстановитьПараметр("РасшифровкаПлатежа", РасшифровкаПлатежа);
Если ДополнительныеОтборы <> Неопределено Тогда
СхемаЗапросаОстатков = Новый СхемаЗапроса;
СхемаЗапросаОстатков.УстановитьТекстЗапроса(Запрос.Текст);
Оператор = СхемаЗапросаОстатков.ПакетЗапросов[2].Операторы[0];
сч = 0;
Для Каждого КлючИЗначение Из ДополнительныеОтборы Цикл
Отбор = "ЕСТЬNULL(ОбъектыРасчетов."+КлючИЗначение.Ключ+", Неопределено) = &Параметр"+Строка(сч);
Запрос.УстановитьПараметр("Параметр"+Строка(сч), КлючИЗначение.Значение);
Оператор.Отбор.Добавить(Отбор);
сч= сч + 1;
КонецЦикла;
Запрос.Текст = СхемаЗапросаОстатков.ПолучитьТекстЗапроса();
КонецЕсли;
РезультатЗапроса = Запрос.ВыполнитьПакет();
Если ТаблицаОстатковРасчетов = Неопределено Тогда
ТаблицаОстатковРасчетов = РезультатЗапроса[4].Выгрузить();
Иначе
ТаблицаОстатковРасчетов.Загрузить(РезультатЗапроса[4].Выгрузить());
КонецЕсли;
Если РасшифровкаПлатежа.Количество() = 0 Тогда
СуммаКРаспределению = Реквизиты.СуммаДокумента;
Иначе
СуммаКРаспределению = 0;
КонецЕсли;
СоответствиеКурсовВалют = Новый Соответствие;
ВыборкаФиксКурса = РезультатЗапроса[3].Выбрать();
ВалютаУправленческогоУчета = ЗначениеНастроекПовтИсп.ВалютаУправленческогоУчета();
Пока ВыборкаФиксКурса.Следующий() Цикл
Если Реквизиты.Валюта = ВыборкаФиксКурса.ВалютаВзаиморасчетов Тогда
КоэффициентПересчета = 1;
ИначеЕсли Реквизиты.Валюта = ВыборкаФиксКурса.ВалютаДокумента Тогда
КоэффициентПересчета = ВыборкаФиксКурса.КурсЧислительВалютыДокумента * ВыборкаФиксКурса.КурсЗнаменательВалютыВзаиморасчетов
/ (ВыборкаФиксКурса.КурсЗнаменательВалютыДокумента * ВыборкаФиксКурса.КурсЧислительВалютыВзаиморасчетов)
ИначеЕсли Реквизиты.Валюта = ВалютаУправленческогоУчета Тогда
КоэффициентПересчета = ВыборкаФиксКурса.КурсЧислительВалютыУправленческогоУчета * ВыборкаФиксКурса.КурсЗнаменательВалютыВзаиморасчетов
/ (ВыборкаФиксКурса.КурсЗнаменательВалютыУправленческогоУчета * ВыборкаФиксКурса.КурсЧислительВалютыВзаиморасчетов)
Иначе
КоэффициентПересчета = ВыборкаФиксКурса.КурсЧислительПеременный * ВыборкаФиксКурса.КурсЗнаменательВалютыВзаиморасчетов
/ (ВыборкаФиксКурса.КурсЗнаменательПеременный * ВыборкаФиксКурса.КурсЧислительВалютыВзаиморасчетов)
КонецЕсли;
Коэффициенты = Новый Структура("КоэффициентПересчетаВВалютуВзаиморасчетов", КоэффициентПересчета);
СоответствиеКурсовВалют.Вставить(ВыборкаФиксКурса.ОбъектРасчетов, Коэффициенты);
КонецЦикла;
Для Каждого СтрокаТаблицы Из ТаблицаОстатковРасчетов Цикл
Если Не СтрокаТаблицы.Выбран Тогда
Если СтрокаТаблицы.ДолгПартнера <> 0 И Реквизиты.ПодборДебиторскойЗадолженности Тогда
СтрокаТаблицы.Сумма = Мин(СтрокаТаблицы.ДолгПартнера, СтрокаТаблицы.КОплате);
ИначеЕсли СтрокаТаблицы.НашДолг <> 0 И НЕ Реквизиты.ПодборДебиторскойЗадолженности Тогда
СтрокаТаблицы.Сумма = Мин(СтрокаТаблицы.НашДолг,СтрокаТаблицы.КОплате);
ИначеЕсли СтрокаТаблицы.КОплате <> 0 Тогда
СтрокаТаблицы.Сумма = СтрокаТаблицы.КОплате;
КонецЕсли;
Если ЗначениеЗаполнено(Реквизиты.Валюта) И Реквизиты.Валюта <> СтрокаТаблицы.ВалютаВзаиморасчетов Тогда
Если СтрокаТаблицы.ВариантКурсаДоговора = Перечисления.ВариантыКурсаДоговора.УстановленныйВДоговоре Тогда
Коэффициенты = СоответствиеКурсовВалют.Получить(СтрокаТаблицы.Договор);
ИначеЕсли СтрокаТаблицы.ВариантКурсаДоговора = Перечисления.ВариантыКурсаДоговора.ФиксированныйНаДатуОтгрузки Тогда
Коэффициенты = СоответствиеКурсовВалют.Получить(СтрокаТаблицы.ОбъектРасчетов);
Иначе
Коэффициенты = СоответствиеКурсовВалют.Получить(СтрокаТаблицы.ВалютаВзаиморасчетов);
КонецЕсли;
Если Коэффициенты = Неопределено Тогда
Коэффициенты = РаботаСКурсамиВалютУТ.ПолучитьКоэффициентыПересчетаВалюты(
Реквизиты.Валюта,
СтрокаТаблицы.ВалютаВзаиморасчетов,
?(Реквизиты.Дата <> '00010101',Реквизиты.Дата, ТекущаяДатаСеанса()),
СтрокаТаблицы.Организация,,,
СтрокаТаблицы.ОбъектРасчетов);
Если СтрокаТаблицы.ВариантКурсаДоговора = Перечисления.ВариантыКурсаДоговора.УстановленныйВДоговоре Тогда
СоответствиеКурсовВалют.Вставить(СтрокаТаблицы.Договор, Коэффициенты);
Иначе
СоответствиеКурсовВалют.Вставить(СтрокаТаблицы.ВалютаВзаиморасчетов, Коэффициенты);
КонецЕсли;
КонецЕсли;
СтрокаТаблицы.Сумма = ?(Коэффициенты.КоэффициентПересчетаВВалютуВзаиморасчетов <> 0, СтрокаТаблицы.Сумма / Коэффициенты.КоэффициентПересчетаВВалютуВзаиморасчетов, 0);
КонецЕсли;
КонецЕсли;
Если СуммаКРаспределению > 0 Тогда
СтрокаТаблицы.Выбран = Истина;
Если СтрокаТаблицы.Сумма > СуммаКРаспределению Тогда
СтрокаТаблицы.Сумма = СуммаКРаспределению;
КонецЕсли;
СуммаКРаспределению = СуммаКРаспределению - СтрокаТаблицы.Сумма;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот