|
Откуда береться значение? | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
09.11.12
✎
02:57
|
Хотел найти , какой обработкой получает в типовой закупочную цену товара партии. Вот в обработке проведения в УТ в ОбщийМодульУправлениеЗапасамиПартионныйУчет есть процедура
ВыполнитьСписание(СтруктураПараметров, ТаблицаСписания, МоментКон, Останавливаться = Ложь, ПроведениеОстановлено = Ложь ) СтруктураПараметров.ТаблицаДвиженийПартииТоваровНаСкладахУпр[0].Стоимость - Вот это меня и интересует. Но получается это значение только после исполнения этого цикла: СтрокаДокумента = Новый Структура; Для Каждого Колонка ИЗ ТаблицаСписания.Колонки Цикл СтрокаДокумента.Вставить(Колонка.Имя); КонецЦикла; До него в табло ничего не расчитывается , но чем исполняется конецЦикла , то сразу выскакивает Стоимость. Не могу понять как этот цикл влияет на СтруктураПараметров ? Щас скину всю процедуру: |
|||
1
Boudybuilder
09.11.12
✎
02:58
|
Процедура ВыполнитьСписание(СтруктураПараметров, ТаблицаСписания, МоментКон, Останавливаться = Ложь, ПроведениеОстановлено = Ложь )
ДополнитьСтруктуруПараметров(СтруктураПараметров, ТаблицаСписания); СтруктураПараметров.Вставить("КодыОпераций",Перечисления.КодыОперацийПартииТоваров); Если ЗначениеЗаполнено(ТаблицаСписания[0].ОсновнойДокумент) Тогда СтруктураПараметров.Вставить("ОсновнойДокумент",ТаблицаСписания[0].ОсновнойДокумент); КонецЕсли; СтруктураПараметров.Вставить("ЕстьСтрокиОтражатьВУправленческомУчете", ТаблицаСписания.Найти(Истина, "ОтражатьВУправленческомУчете")<>Неопределено); // Подготовка наборов записей ПодготовитьНаборыЗаписей(СтруктураПараметров, ТаблицаСписания, ТаблицаСписания[0].Период, ТаблицаСписания[0].Регистратор, Истина); СтруктураПараметров.Вставить("ТипЗначенияРегистратора", ТипЗнч(ТаблицаСписания[0].Регистратор)); // Для закрытия заказов покупателей дерево остатков партий должно получаться особым способом Если СтруктураПараметров.ТипЗначенияРегистратора =Тип("ДокументСсылка.ЗакрытиеЗаказовПокупателей") тогда СтруктураПараметров.Вставить("ЗакрытиеЗаказовПокупателей"); КонецЕсли; // В некоторых случаях получать остатки не нужно ТребуетсяПолучитьОстатки = Истина; // Ордерная схема поступления Если СтруктураПараметров.ТипЗначенияРегистратора =Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Или СтруктураПараметров.ТипЗначенияРегистратора =Тип("ДокументСсылка.АвансовыйОтчет") тогда ТребуетсяПолучитьОстатки = Ложь; // Возврат товаров от покупателя (возврат от комиссионера обрабатывается основным алгоритмом списания // фактически являясь частным случаем перемещения товаров) ИначеЕсли СтруктураПараметров.ТипЗначенияРегистратора =Тип("ДокументСсылка.ВозвратТоваровОтПокупателя") Тогда ТребуетсяПолучитьОстатки = НЕ ТаблицаСписания[0].КодОперацииПартииТоваров = СтруктураПараметров.КодыОпераций.ВозвратОтПокупателя; КонецЕсли; Если ТребуетсяПолучитьОстатки Тогда // Добавление в структуру остатков по партионному учету ПолучитьОстатки(СтруктураПараметров, ТаблицаСписания, МоментКон); КонецЕсли; ОбрабатываемыйДокумент = Неопределено; СтруктураВидовУчета = Новый Структура("ОтражатьВУправленческомУчете, ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете"); СтрокаДокумента = Новый Структура; Для Каждого Колонка ИЗ ТаблицаСписания.Колонки Цикл СтрокаДокумента.Вставить(Колонка.Имя); КонецЦикла; Для Каждого СтрокаТаблицыСписания Из ТаблицаСписания Цикл ОбрабатываемыйДокумент = СтрокаТаблицыСписания.Регистратор; // Строка не обрабатывается при списании Если НЕ СтруктураПараметров.СписыватьПартииРасходнымОрдером И ( СтрокаТаблицыСписания.КодОперацииПартииТоваров = Перечисления.КодыОперацийПартииТоваров.Реализация Или СтрокаТаблицыСписания.КодОперацииПартииТоваров = Перечисления.КодыОперацийПартииТоваров.ПередачаТарыКонтрагенту) Тогда // Для документа "Реализация товаров и услуг" реализована возможность списывать партии при // проведении документа, даже если вид передачи = "по ордеру" // В этом случае партия списывается за баланс и окончательное списание осуществляется ордером НеСписывать = Ложь; Иначе НеСписывать = СтрокаТаблицыСписания.НеСписывать; КонецЕсли; Если НеСписывать Тогда Продолжить; КонецЕсли; // Номер строки, по которой списана партия // Используется при возврате товаров от покупателя, ордерной схеме поступления, // механизмом корректировки стоимости списания СтруктураПараметров.Вставить("НомерСтрокиСписанныхТоваров",СтрокаТаблицыСписания.НомерСтроки); ЗаполнитьЗначенияСвойств(СтруктураВидовУчета, СтрокаТаблицыСписания); //Для Каждого КлючИЗначение ИЗ СтруктураВидовУчета Цикл // Если КлючИЗначение.Значение Тогда ЗаполнитьЗначенияСвойств(СтрокаДокумента, СтрокаТаблицыСписания); //Шаблон = Новый Структура("ОтражатьВУправленческомУчете, ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете", Ложь, Ложь, Ложь); //Шаблон[КлючИЗначение.Ключ] = ИСТИНА; //ЗаполнитьЗначенияСвойств(СтрокаДокумента, Шаблон); Если СтрокаДокумента.ОтражатьВБухгалтерскомУчете И НЕ СтруктураПараметров.Свойство("СдвигГраницыПоследовательностиРасчетыПоРеализацииОрганизации") И (СтрокаДокумента.КодОперацииПартииТоваров = СтруктураПараметров.КодыОпераций.Реализация Или СтрокаДокумента.КодОперацииПартииТоваров = СтруктураПараметров.КодыОпераций.РеализацияКомиссия) тогда СтруктураПараметров.Вставить("СдвигГраницыПоследовательностиРасчетыПоРеализацииОрганизации"); КонецЕсли; // Специфические случаи списания : // 1. Возврат от покупателя Если СтрокаДокумента.КодОперацииПартииТоваров = СтруктураПараметров.КодыОпераций.ВозвратОтПокупателя Тогда ПоступлениеВозвратОтПокупателя(СтрокаДокумента, СтруктураПараметров); // 2. Поступление товаров по ордеру: корректировка предыдущих списаний ИначеЕсли ЗначениеЗаполнено(СтрокаДокумента.ПоступлениеПриходныйОрдер) Тогда Если СтрокаДокумента.ОтражатьВУправленческомУчете Тогда ПоступлениеТоваровПоОрдеруУпр(СтрокаДокумента, СтруктураПараметров); КонецЕсли; // 3. Закрытие заказов ИначеЕсли ТипЗнч(СтрокаДокумента.Регистратор)=Тип("ДокументСсылка.ЗакрытиеЗаказовПокупателей") Тогда СнятиеРезервовПоЗаказамПокупателей(СтрокаДокумента, СтруктураПараметров); // 4. Документ, в котором указываются данные, которых нет в документе списания: // - Списание партий по расходному ордеру // - Перемещение партий по приходному ордеру ИначеЕсли ЗначениеЗаполнено(СтрокаДокумента.ОсновнойДокумент) Тогда СписаниеПартийОрдерныйСклад(СтрокаДокумента, СтруктураПараметров); // Общий случай списания Иначе // Сначала обрабатывается списание СписаниеПартий(СтрокаДокумента, СтруктураПараметров, СтрокаДокумента.ИсточникПоКодуОперации); КонецЕсли; //КонецЕсли; //КонецЦикла; КонецЦикла; Если СтруктураПараметров.Свойство("ТаблицыСписанияРасходнымОрдером") тогда СтруктураПараметров.Удалить("ТаблицыСписанияРасходнымОрдером"); КонецЕсли; Если Не ОбрабатываемыйДокумент = Неопределено Тогда // Дополнительные движения по результату списания документом определенных партий ВыполнитьДопДвиженияПоРезультатуСписания(СтруктураПараметров, ТаблицаСписания); // Если задан параметр останавливаться при нехватке партий и партий не хватило - прекратим проведение Если Останавливаться И СтруктураПараметров.Отказ тогда ОбщегоНазначения.СообщитьОбОшибке("Проведение по партиям остановлено ",СтруктураПараметров.Отказ); ПроведениеОстановлено = Истина; Возврат; КонецЕсли; ЗаписатьДвиженияДокумента(СтруктураПараметров, ТаблицаСписания, Истина); #Если Клиент Тогда Состояние("Проведен документ " + ОбрабатываемыйДокумент); #КонецЕсли КонецЕсли; КонецПроцедуры//ВыполнитьСписание() |
|||
2
IamAlexy
09.11.12
✎
03:01
|
мало кода
давай нахлобучивай еще еще кода еще больше типовых модулей желательно надергать однотипных инструментов но из разных конфигураций.. чтобы больше квеста было |
|||
3
Boudybuilder
09.11.12
✎
03:04
|
Эти действия я делал только для того , чтобы выследить как в типовой получается списание по партиям. Мне надо получать при проведении дока закупочную цену товара , в зависимости от ЛИФО или ФИФо. Потому как товары подбераются в карточку ремонта как запчасти и работы. Они должны списываться с точки , но по регистрам продаж не проводиться. А получать закупочную и продажную цену. Записать ее в регистр стоимость ремонта. А уже оотуда буду расчитывать прибыль при выдачи ремонта с вохможностью скидки и прочих...
|
|||
4
Boudybuilder
09.11.12
✎
03:05
|
(2) Ладно , а как тогда тот цикл может повлиять на изменение значения?
|
|||
5
IamAlexy
09.11.12
✎
03:06
|
уже бы свой написал давно.
карточка ремонта это же и так явно не УТшное.. |
|||
6
IamAlexy
09.11.12
✎
03:06
|
(4) легко
значнеие = 1; пока истина цикл значение = значение + 1; если значение > чутьболеечемдофуя Тогда прервать; КонецЕсли; конецЦикла; |
|||
7
Boudybuilder
09.11.12
✎
03:11
|
СтруктураПараметров.ТаблицаДвиженийПартииТоваровНаСкладахУпр[0].Стоимость до этого = 0
СтрокаДокумента = Новый Структура; Для Каждого Колонка ИЗ ТаблицаСписания.Колонки Цикл СтрокаДокумента.Вставить(Колонка.Имя); КонецЦикла; СтруктураПараметров.ТаблицаДвиженийПартииТоваровНаСкладахУпр[0].Стоимость после этого = КакоеТоЧисло Внимание вАпрос: Как СтрокаДокумента влияет на СтруктураПараметров??? |
|||
8
Dethmont
09.11.12
✎
03:50
|
Не пойму только причем тут
СтрокаДокумента |
|||
9
Dethmont
09.11.12
✎
03:52
|
Не
Если ТребуетсяПолучитьОстатки Тогда // Добавление в структуру остатков по партионному учету ПолучитьОстатки(СтруктураПараметров, ТаблицаСписания, МоментКон); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |