|
Списание товаров. | ☑ | ||
---|---|---|---|---|
0
antihacker
26.02.14
✎
14:52
|
Всем привет !
Не могу понять как документ списывает товры. Не понятно от куда то берет сумму и сажает в ДтКт. Ручками указываешь цену в табличной части. Но он их не берет. Если не берет, то он сумму сажает во время проведения. А там тока вот это формирует список товаров для проведения. РезультатЗапросаПоТоварам = УправлениеЗапасами.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, "Товары", СтруктураПолей); // Подготовим таблицу товаров для проведения. ТаблицаПоТоварам = ПодготовитьТаблицуТоваров(РезультатЗапросаПоТоварам, СтруктураШапкиДокумента); Функция ПодготовитьТаблицуТоваров Выглядит так. Функция ПодготовитьТаблицуТоваров(РезультатЗапросаПоТоварам, СтруктураШапкиДокумента) ТаблицаТоваров = РезультатЗапросаПоТоварам.Выгрузить(); Возврат ТаблицаТоваров; КонецФункции // ПодготовитьТаблицуТоваров() А функция УправлениеЗапасами.СформироватьЗапросПоТабличнойЧасти выглядит так. Функция СформироватьЗапросПоТабличнойЧасти(ДокументОбъект, ИмяТабличнойЧасти, СтруктураПолей, СтруктураСложныхПолей = Неопределено) Экспорт Запрос = Новый Запрос; ТекстЗапроса = ""; ДокументМетаданные = ДокументОбъект.Метаданные(); Для Каждого Реквизит Из СтруктураПолей Цикл ТекстЗапроса = ТекстЗапроса + ", | Док." + Реквизит.Значение + ?(НЕ ЗначениеЗаполнено(Реквизит.Ключ), "", " КАК " + СокрЛП(Реквизит.Ключ)); КонецЦикла; ТекстСоединение=""; Если ТипЗнч(СтруктураСложныхПолей) = Тип("Структура") Тогда // Добавим к запросу конструкции. Для Каждого Элемент Из СтруктураСложныхПолей Цикл ТекстЗапроса = ТекстЗапроса + ", | " + Элемент.Значение + ?(НЕ ЗначениеЗаполнено(Элемент.Ключ), "", " КАК " + СокрЛП(Элемент.Ключ)); КонецЦикла; Если СтруктураСложныхПолей.Свойство("Проект") Тогда Если ИмяТабличнойЧасти = "ОС" Тогда ТекстСоединение=" |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УстановкаПроектовДляНоменклатуры.СрезПоследних(&ДатаДок, НоменклатураПроекта В (ВЫБРАТЬ ОсновноеСредство ИЗ Документ." + ДокументМетаданные.Имя + "."+ СокрЛП(ИмяТабличнойЧасти) + " ГДЕ Ссылка = &ДокументСсылка)) КАК ПроектыНоменклатуры |ПО Док.ОсновноеСредство=ПроектыНоменклатуры.НоменклатураПроекта"; ИначеЕсли ИмяТабличнойЧасти = "НМА" Тогда ТекстСоединение=" |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УстановкаПроектовДляНоменклатуры.СрезПоследних(&ДатаДок, НоменклатураПроекта В (ВЫБРАТЬ НематериальныйАктив ИЗ Документ." + ДокументМетаданные.Имя + "."+ СокрЛП(ИмяТабличнойЧасти) + " ГДЕ Ссылка = &ДокументСсылка)) КАК ПроектыНоменклатуры |ПО Док.НематериальныйАктив=ПроектыНоменклатуры.НоменклатураПроекта"; Иначе ТекстСоединение=" |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УстановкаПроектовДляНоменклатуры.СрезПоследних(&ДатаДок, НоменклатураПроекта В (ВЫБРАТЬ Номенклатура ИЗ Документ." + ДокументМетаданные.Имя + "."+ СокрЛП(ИмяТабличнойЧасти) + " ГДЕ Ссылка = &ДокументСсылка)) КАК ПроектыНоменклатуры |ПО Док.Номенклатура=ПроектыНоменклатуры.НоменклатураПроекта"; КонецЕсли; Запрос.УстановитьПараметр("ДатаДок",ДокументОбъект.Дата); КонецЕсли; КонецЕсли; Запрос.Текст = " |ВЫБРАТЬ | Док.НомерСтроки " + ТекстЗапроса + " | |ИЗ | Документ." + ДокументМетаданные.Имя + "."+ СокрЛП(ИмяТабличнойЧасти) + " КАК Док"+ТекстСоединение+" |ГДЕ | Док.Ссылка = &ДокументСсылка"; // Установим параметры запроса. Запрос.УстановитьПараметр("ДокументСсылка" , ДокументОбъект.Ссылка); Если ДокументОбъект[ИмяТабличнойЧасти].Количество() = 0 Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ Док.Ссылка = &ДокументСсылка", "ГДЕ ЛОЖЬ"); КонецЕсли; Возврат Запрос.Выполнить(); КонецФункции // СформироватьЗапросПоТабличнойЧасти() Ни где речь н идет о сумме. А печать списка списанных товаров тупо берет сумму из ДтКт и делит на количество для выявления цен. Блин.... |
|||
1
Naumov
26.02.14
✎
14:58
|
Конфигурацию угадать по коду? или в чем задание?
|
|||
2
azernot
26.02.14
✎
15:00
|
(0) А с чего ты взял, что подготовленная таблица содержит все данные для проведения? Очевидно, что сумма далее при проведении рассчитывается. Где-нибудь в процедуре
ДвиженияПоРегистрам() вызывается что-нибудь типа УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров() |
|||
3
shuhard
26.02.14
✎
15:04
|
(1)[в чем задание?]
кто первым и как можно дальше пошлёт ТС-а |
|||
4
azernot
26.02.14
✎
15:08
|
(3) "Первым" - это непринципиально. Главное, чтобы более витиевато, чем все предыдущие :)
|
|||
5
antihacker
26.02.14
✎
15:33
|
Я в ДвиженияПоРегистрамУпр()
Нашел вот это- ТаблицаПоЦенам = УправлениеРозничнойТорговлей.СформироватьЗапросПоПродажнымЦенам(Дата, Склад, ТаблицыДанныхДокумента.ТаблицаПоТоварам.ВыгрузитьКолонку("Номенклатура")).Выгрузить(); УправлениеРозничнойТорговлей.ЗаполнитьКолонкуСуммаПродажная(ТаблицыДанныхДокумента.ТаблицаПоТоварам, ТаблицаПоЦенам); Это значить списание делается по продажной цене ? |
|||
6
shuhard
26.02.14
✎
15:34
|
(4) ну спортивный интерес то же важен =)
|
|||
7
antihacker
26.02.14
✎
15:34
|
Хотя нет.
эти стрки в том случае если вид склада розничный. А у меня вид склада закупочный |
|||
8
Naumov
26.02.14
✎
15:51
|
(5) Кто у тебя отладчик стырил?
|
|||
9
antihacker
27.02.14
✎
06:39
|
А как здесь отладчик поможет ?
|
|||
10
antihacker
27.02.14
✎
06:39
|
Конфига УТП 8,1
|
|||
11
floody
27.02.14
✎
07:18
|
(10) с чего решил, что при списании товаров должны браться вообще какие-то ЦЕНЫ? себестоимость и цена - это не одно и то же.
|
|||
12
antihacker
27.02.14
✎
08:30
|
А вот себестоимоть где берется тоже не смог найти. ПОнимаю что он смазанный по всему периоду. Но он на каждый товар как то получает этот себестоимость............
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |