|
v7: Помогите разобраться пожалуйста | ☑ | ||
---|---|---|---|---|
0
max805
24.01.13
✎
04:04
|
Есть документ ПеремещениеТМЦ в табличную часть добавил колонку "Заказ" все работает то что нужно но есть трабла как сделать так что бы с помощью подбора номенклатуры количество попадало не в колонку "количество" (по умолчанию) а в колонку "Заказ" Заранее спасибо
|
|||
1
КонецЦикла
24.01.13
✎
04:10
|
поменять обработку подбора в глобальнике
|
|||
2
max805
24.01.13
✎
04:10
|
это понятно. но тогда заденет все документы
а нужно тока в одном |
|||
3
КонецЦикла
24.01.13
✎
04:11
|
Ну так условие на Вид() поможет?
|
|||
4
max805
24.01.13
✎
04:14
|
Процедура глОбработкаПодбора(Конт, ВыбЗнач, ЕстьЦена, ЕстьНДС, ЕстьНП, ЕстьСкидка, ЕстьВидТМЦ) Экспорт
Перем ТаблЧасть; // Инициалищзация переменных ФлагиИзТипаЦен = 0; ЦенаВклНП = 1; ЦенаВклНДС = 1; УчитыватьНП = ЕстьНП; УчитыватьНДС = ЕстьНДС; Если ЕстьЦена = 1 Тогда // Флаги включения налогов в сумму определяеются типом цен, // кроме случая перемещения из розницы (цены в этом случае берутся из регистра с налогами) ФлагиИзТипаЦен = 1; Если Конт.Вид() = "ПеремещениеТМЦ" Тогда Если Конт.Склад.РозничныйСклад = 1 Тогда ФлагиИзТипаЦен = 0; КонецЕсли; КонецЕсли; ФлагиИзТипаЦен = ФлагиИзТипаЦен * глЕстьРеквизитШапки("ТипЦен", Конт.Вид()); Если ФлагиИзТипаЦен = 1 Тогда // Подбирали по ценам с налогами, заданными в типе цен ЦенаВклНП = Конт.ТипЦен.ЦенаВклНП; ЦенаВклНДС = Конт.ТипЦен.ЦенаВклНДС; Иначе // считаем, что подбирали в соответствии с флагами в документе // По умолчанию считаем, что если нет в документе флагов учета налогов, // то цена со всеми налогами (как в рознице) Если глЕстьРеквизитШапки("СуммаВклНП", Конт.Вид()) = 1 Тогда ЦенаВклНП = Конт.СуммаВклНП; КонецЕсли; Если глЕстьРеквизитШапки("СуммаВклНДС", Конт.Вид()) = 1 Тогда ЦенаВклНДС = Конт.СуммаВклНДС; КонецЕсли; КонецЕсли; // Выкручивать или накручивать налоги надо только если они в документе учитываются Если глЕстьРеквизитШапки("УчитыватьНП", Конт.Вид()) = 1 Тогда УчитыватьНП = ЕстьНП * Конт.УчитыватьНП; КонецЕсли; Если глЕстьРеквизитШапки("УчитыватьНДС", Конт.Вид()) = 1 Тогда УчитыватьНДС = ЕстьНДС * Конт.УчитыватьНДС; КонецЕсли; КонецЕсли; ТипЗнач = ТипЗначенияСтр(ВыбЗнач); Если ТипЗнач = "ТаблицаЗначений" Тогда ВыбЗнач.ВыбратьСтроки(); Конт.ВыгрузитьТабличнуюЧасть(ТаблЧасть, "Номенклатура, Единица, НомерСтроки"); ТаблЧасть.НоваяКолонка("Индекс"); ТаблЧасть.ВыбратьСтроки(); Пока ТаблЧасть.ПолучитьСтроку() = 1 Цикл ТаблЧасть.Индекс = ТаблЧасть.Номенклатура.Код + ТаблЧасть.Единица.Океи.Код; КонецЦикла; Пока ВыбЗнач.ПолучитьСтроку() <> 0 Цикл Номенклатура = ВыбЗнач.Номенклатура; Индекс = Номенклатура.Код + Номенклатура.ОсновнаяЕдиница.Океи.Код; // поищем номенклатуру Поз = 0; Если ТаблЧасть.НайтиЗначение(Индекс, Поз, "Индекс") = 1 Тогда // нашли, увеличиваем количество Конт.ПолучитьСтрокуПоНомеру(Поз); Конт.Количество = Конт.Количество + ВыбЗнач.Количество; // Вызывать пересчет имеет смысл только если есть цена Если ЕстьЦена = 1 Тогда глПересчетТаблЧасти(Конт,"Количество"); КонецЕсли; Иначе // добавляем новую строку Конт.НоваяСтрока(); Если ЕстьВидТМЦ = 1 Тогда Конт.ВидТМЦ = ВыбЗнач.ВидТМЦ; Если Конт.Вид()="ПоступлениеТМЦ" Тогда Конт.ВидТМЦ=Перечисление.ВидыТМЦ.Товар;КонецЕсли; КонецЕсли; Конт.Номенклатура = Номенклатура; Конт.Количество = ВыбЗнач.Количество; Конт.Единица = Номенклатура.ОсновнаяЕдиница; Конт.Коэффициент = Конт.Единица.Коэффициент; Если ЕстьНДС = 1 Тогда Конт.СтавкаНДС = Номенклатура.СтавкаНДС; КонецЕсли; Если ЕстьНП= 1 Тогда Конт.СтавкаНП = Номенклатура.СтавкаНП; КонецЕсли; Если ЕстьЦена = 1 Тогда глПересчитатьЦенуВДокументе(Конт, УчитыватьНП, УчитыватьНДС, ВыбЗнач.Цена, Конт.Валюта, ЦенаВклНП, ЦенаВклНДС); глПересчетТаблЧасти(Конт,"Цена"); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; Если Конт.Вид()="Реализация" Тогда Иначе Конт.Форма.Обновить(0); КонецЕсли; КонецПроцедуры // глОбработкаПодбора() |
|||
5
max805
24.01.13
✎
04:15
|
это обработка подбора где нужно поставить значение "заказ" никак не пойму?
|
|||
6
Godofsin
24.01.13
✎
04:25
|
Конт.НоваяСтрока();
Если ЕстьВидТМЦ = 1 Тогда Конт.ВидТМЦ = ВыбЗнач.ВидТМЦ; Если Конт.Вид()="ПоступлениеТМЦ" Тогда Конт.ВидТМЦ=Перечисление.ВидыТМЦ.Товар;КонецЕсли; КонецЕсли; Конт.Номенклатура = Номенклатура; Конт.Количество = ВыбЗнач.Количество; Конт.Единица = Номенклатура.ОсновнаяЕдиница; Конт.Коэффициент = Конт.Единица.Коэффициент; |
|||
7
КонецЦикла
24.01.13
✎
04:26
|
Вот это место
Если ТаблЧасть.НайтиЗначение(Индекс, Поз, "Индекс") = 1 Тогда // нашли, увеличиваем количество Конт.ПолучитьСтрокуПоНомеру(Поз); Конт.Количество = Конт.Количество + ВыбЗнач.Количество; // Вызывать пересчет имеет смысл только если есть цена Если ЕстьЦена = 1 Тогда глПересчетТаблЧасти(Конт,"Количество"); КонецЕсли; Иначе // добавляем новую строку Конт.НоваяСтрока(); Если ЕстьВидТМЦ = 1 Тогда Конт.ВидТМЦ = ВыбЗнач.ВидТМЦ; Если Конт.Вид()="ПоступлениеТМЦ" Тогда Конт.ВидТМЦ=Перечисление.ВидыТМЦ.Товар;КонецЕсли; КонецЕсли; Конт.Номенклатура = Номенклатура; Конт.Количество = ВыбЗнач.Количество; Конт.Единица = Номенклатура.ОсновнаяЕдиница; Конт.Коэффициент = Конт.Единица.Коэффициент; Вот так наверное: Если Конт.Вид() = "ПеремещениеТМЦ" Тогда Конт.Заказ = Конт.Заказ+ ВыбЗнач.Количество; Иначе Конт.Количество = Конт.Количество + ВыбЗнач.Количество; КонецЕсли; //.... Если Конт.Вид() = "ПеремещениеТМЦ" Тогда Конт.Заказ = ВыбЗнач.Количество; Иначе Конт.Количество = ВыбЗнач.Количество; КонецЕсли; |
|||
8
max805
24.01.13
✎
04:46
|
спасибо получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |