|
v7: Непонятное движение регистра | ☑ | ||
---|---|---|---|---|
0
Санта Клаус
07.10.20
✎
16:51
|
В ТИС 7.7 при проведении документа Поступление импорт делается корректирующее (по всей видимости) движение по Регистру Партии,КодОперации ПоступлениеТМЦ,Товар купленный - с нулевым количеством и минусовой суммой. В отладчике не мог увидеть и отловить это движение. Может ли сама платформа делать такое движение.Спасибо
|
|||
1
mikecool
07.10.20
✎
16:54
|
нет
|
|||
2
Санта Клаус
07.10.20
✎
16:57
|
спс
|
|||
3
HawkEye
07.10.20
✎
18:48
|
(0) теоретически может, в отладчике смотри что происходит в ПроведениеПоРегистрам()
|
|||
4
HawkEye
07.10.20
✎
18:51
|
+(3) там кстати в коде написано, русским по белому: РегПартии.Количество = 0;
|
|||
5
Злопчинский
07.10.20
✎
23:58
|
там все тупо по оприходванию ПАРТИЙ ТМЦ
. //****************************************************************************** // глОприходованиеПартийТМЦ(Конт,ТаблНоменклатуры,СписокПараметров) // // Параметры: // Конт - контекст проведения // ТаблицаДокумента - таблица документа. Должна содержать колонки: // 1) "Номенклатура" // 2) "Количество" // 3) "Сумма" (в валюте взаиморасчетов) // 4) "СуммаУпр" (в валюте управленческого учета) // 5) "СуммаРуб" (в валюте бухгалтерского учета) // 6) "СуммаНДС" (в валюте бухгалтерского учета) // 7) "Партия" (в которую оприходовать) // 8) "ВидТМЦ" (Вид ТМЦ, Перечисление.ВидыТМЦ) // Только для оприходования на розничный склад: // 9) "СуммаРозничная" // СписокПараметров - список доп параметров проведения // (используются: "Фирма", "Склад", "Контрагент", "Договор", "ТекДок", "КодОперации") // // Описание: // Производит оприходование ТМЦ по регистру "ПартииНаличие". // Процедура глОприходованиеПартийТМЦ(Конт,ТаблНоменклатуры,СписокПараметров) Экспорт СпрПартии = СоздатьОбъект("Справочник.Партии"); РегПартии = Конт.Регистр.ПартииНаличие; Фирма = СписокПараметров.Получить("Фирма"); Склад = СписокПараметров.Получить("Склад"); Поставщик = СписокПараметров.Получить("Контрагент"); ДоговорПоставщика = СписокПараметров.Получить("Договор"); ТекДок = СписокПараметров.Получить("ТекДок"); КодОперации = СписокПараметров.Получить("КодОперации"); УчПолитика = Фирма.ЮрЛицо.МетодРасчетаСебестоимости.Получить(Конт.ДатаДок); МОЛ = Склад.МОЛ; ТаблНоменклатуры.ВыбратьСтроки(); Пока ТаблНоменклатуры.ПолучитьСтроку()=1 Цикл Номенклатура = ТаблНоменклатуры.Номенклатура; Если (Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга) или (Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда Продолжить; КонецЕсли; //измерения РегПартии.Фирма = Фирма; РегПартии.МОЛ = МОЛ; РегПартии.Номенклатура = Номенклатура; РегПартии.СтатусПартии = глПолучитьСтатусПартииПрихода(ТаблНоменклатуры.ВидТМЦ,Номенклатура,КодОперации, Склад); Если (УчПолитика = Перечисление.МетодыРасчетаСебестоимости.FIFO) или (УчПолитика = Перечисление.МетодыРасчетаСебестоимости.LIFO) или (РегПартии.СтатусПартии = глСП.Т_Принятый) Тогда ЗакупочнаяЦена = ?(ТаблНоменклатуры.Количество=0, 0, Окр(ТаблНоменклатуры.Сумма / ТаблНоменклатуры.Количество,2,1)); РегПартии.Партия = глЗаполнитьПартию(СпрПартии, ТаблНоменклатуры.Партия, Поставщик,ДоговорПоставщика,ТекДок,ЗакупочнаяЦена); РегПартии.ДатаПартии = ТекДок.ДатаДок; Иначе РегПартии.Партия = ""; РегПартии.ДатаПартии = ""; КонецЕсли; //ресурсы РегПартии.Количество = ТаблНоменклатуры.Количество; РегПартии.СуммаУпр = ТаблНоменклатуры.СуммаУпр; РегПартии.СуммаРуб = ТаблНоменклатуры.СуммаРуб; РегПартии.СуммаБезНДС = ТаблНоменклатуры.СуммаРуб-ТаблНоменклатуры.СуммаНДС; Если Склад.РозничныйСклад = 1 Тогда РегПартии.ПродСтоимость = ТаблНоменклатуры.ПродСтоимость; КонецЕсли; РегПартии.ЦенаПрод = ТаблНоменклатуры.ЦенаПродПриход; //реквизиты РегПартии.КодОперации = КодОперации; РегПартии.ПривязыватьСтроку(ТаблНоменклатуры.НомерСтрокиДокумента); РегПартии.ДвижениеПриходВыполнить(); КонецЦикла; КонецПроцедуры // глОприходованиеПартийТМЦ() . а то что вы обсуждаете связано с добавкой хвостов" - таможенные платежи и пошлины. . по тупо оприходованным партиям (ничем не отличается от обычных поступлений) - колбасим по каждой партии пошлины и пр. // отразим таможенные сборы и пошлины и НДС ОстатокСбораРуб = ТаможенныйСборРуб + ТаможенныйСборВал_Р; КоэффСбора = ?(ТаблицаДокумента.Итог("СуммаРуб") = 0, 0, ОстатокСбораРуб / ТаблицаДокумента.Итог("СуммаРуб")); МОЛ = Склад.МОЛ; КурсДоллара = ?(Валюта = глДоллары, Курс,глКурсДляВалюты(глДоллары, ДатаДок)); КурсРубля = ?(Валюта = глРубли, Курс,глКурсДляВалюты(глРубли, ДатаДок)); КратДоллара = ?(Валюта = глДоллары, Кратность,глКратностьДляВалюты(глДоллары,ДатаДок)); КратРубля = ?(Валюта = глРубли, Кратность,глКратностьДляВалюты(глРубли, ДатаДок)); РегПартии = Регистр.ПартииНаличие; УчПолитика = Фирма.ЮрЛицо.МетодРасчетаСебестоимости.Получить(ДатаДок); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку() = 1 Цикл //измерения РегПартии.Фирма = Фирма; РегПартии.МОЛ = МОЛ; РегПартии.Номенклатура = ТаблицаДокумента.Номенклатура; РегПартии.СтатусПартии = глПолучитьСтатусПартииПрихода(ТаблицаДокумента.ВидТМЦ,ТаблицаДокумента.Номенклатура,глКО.Закупка); Если (Фирма.ЮрЛицо.МетодРасчетаСебестоимости.Получить(ДатаДок) = Перечисление.МетодыРасчетаСебестоимости.FIFO) или (Фирма.ЮрЛицо.МетодРасчетаСебестоимости.Получить(ДатаДок) = Перечисление.МетодыРасчетаСебестоимости.LIFO) или (РегПартии.СтатусПартии = глСП.Т_Принятый) Тогда РегПартии.Партия = ТаблицаДокумента.Партия; РегПартии.ДатаПартии = ДатаДок; Иначе РегПартии.Партия = ""; РегПартии.ДатаПартии = ""; КонецЕсли; //ресурсы Если ТаблицаДокумента.НомерСтроки = ТаблицаДокумента.КоличествоСтрок() Тогда ТекСуммаСбора = ОстатокСбораРуб; Иначе ТекСуммаСбора = Окр(ТаблицаДокумента.СуммаРуб * КоэффСбора,2,1); ОстатокСбораРуб = ОстатокСбораРуб - ТекСуммаСбора; КонецЕсли; РегПартии.Количество = 0; РегПартии.СуммаРуб = ТаблицаДокумента.СуммаПошлиныРуб+ ТаблицаДокумента.СуммаНДСРуб+ ТекСуммаСбора; РегПартии.СуммаБезНДС = ТаблицаДокумента.СуммаПошлиныРуб+ ТекСуммаСбора; РегПартии.СуммаУпр = глПересчет(РегПартии.СуммаРуб,глРубли,КурсРубля,глДоллары,КурсДоллара,КратРубля,КратДоллара); //реквизиты РегПартии.КодОперации = глКО.ТаможенныеПлатежи; РегПартии.ПривязыватьСтроку(ТаблицаДокумента.НомерСтрокиДокумента); РегПартии.ДвижениеПриходВыполнить(); КонецЦикла; // по строкам таблицы документа |
|||
6
Злопчинский
07.10.20
✎
23:59
|
Вычисляется на раз (имхо).
надо тупо дать скрин заполненной ТЧ и скрин движений по регистру |
|||
7
Злопчинский
08.10.20
✎
00:04
|
смотрите - похоже у вас большая сумма сборов и мелкая сумма по строке типа так..
. здесь смотри на КФ обрати внимание Если ТаблицаДокумента.НомерСтроки = ТаблицаДокумента.КоличествоСтрок() Тогда ТекСуммаСбора = ОстатокСбораРуб; Иначе ТекСуммаСбора = Окр(ТаблицаДокумента.СуммаРуб * КоэффСбора,2,1); ОстатокСбораРуб = ОстатокСбораРуб - ТекСуммаСбора; КонецЕсли; |
|||
8
Санта Клаус
08.10.20
✎
08:20
|
нашел)
СкорректироватьДвиженияПартийПоАвансам() глЗаписатьДвиженияРегистраПартийПоТаблице(ТаблицаКорректировкиПартий, Конт) |
|||
9
Злопчинский
08.10.20
✎
09:47
|
Ура! и в чем там смысл? минусует ранее имевшиеся авансы по сборам?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |