С колонками которые динамически не появляются в[ ]зависимости от выбора типа цены все окей, а вот колонки которые появляются, необходимо убрать две,
в
роде бы во всех процедурах закомен
нтил их, но они все равно есть, причем при добавлен
ни
и на основании, вот процедурка при добавлении на основании
! |
| Правила п.2. Скорость написания Вами текста влияет на скорость получения ответа обратнопропорционально количеству грамматических и орфографических ошибок
|
Процедура ЗаполнитьТабличнуюЧастьПоПоступлениюНаОсновании(ДокументПоступление,Перезаполнение=Ложь)
Перем Отказ;
Отказ = Ложь;
ТипЦенБазовый = ДокументПоступление.ТипЦен.ТипЦеныНоменклатуры;
Если ЗначениеЗаполнено(ТипЦенБазовый) И ТипЦенБазовый.Рассчитывается Тогда
ОбщегоНазначения.СообщитьОбОшибке("В документе поступления для типа цены контрагента выбран динамический тип цен номенклатуры." + Символы.ПС+ "Расчет цен номенклатуры на основании цен контрагента выполнить невозможно!", Отказ);
КонецЕсли;
Если Отказ Тогда
возврат;
КонецЕсли;
Если Не Перезаполнение Тогда
// Получим подчиненные типы цен.
ПодчиненныеТипыЦен = ПолучитьПодчиненныеТипыЦен(ТипЦенБазовый);
ПодчиненныеТипыЦен.Добавить(ТипЦенБазовый);
//Обойдем массив в обратном порядке.
КоличествоПодчиненныхТипов = ПодчиненныеТипыЦен.Количество();
Для Тмп = 1 По КоличествоПодчиненныхТипов Цикл
СтрокаТабличнойЧасти = ТипыЦен.Добавить();
СтрокаТабличнойЧасти.ТипЦен = ПодчиненныеТипыЦен[КоличествоПодчиненныхТипов - Тмп];
КонецЦикла;
Иначе
ПодчиненныеТипыЦен = ТипыЦен.ВыгрузитьКолонку("ТипЦен");
КонецЕсли;
//ЗаполнитьСписокТиповЦен();
// Обновим состав колонок.
ОбновитьСоставКолонок();
//ПолучитьСтруктуруПоложенийКолонок();
//ВидимостьКолонок();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Дата", РабочаяДата);
Запрос.УстановитьПараметр("ДокументОснование", ДокументПоступление);
Запрос.УстановитьПараметр("ПодчиненныеТипыЦен", ПодчиненныеТипыЦен);
Запрос.Текст = "
|ВЫБРАТЬ
| ТоварыИзДокумента.*,
| СпрТипыЦен.Ссылка КАК ТипЦен,
| СпрТипыЦен.ВалютаЦены КАК ВалютаТипаЦены,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ПроцентСкидкиНаценки, СпрТипыЦен.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены, СпрТипыЦен.СпособРасчетаЦены) КАК СпособРасчетаЦены
|ИЗ
| (ВЫБРАТЬ
| Док.Ссылка.СуммаВключаетНДС КАК СуммаВключаетНДС,
| Док.Ссылка.ВалютаДокумента КАК ВалютаДокумента,
| Док.Номенклатура КАК Номенклатура,
| Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СРЕДНЕЕ(Док.Цена) КАК Цена,
| Док.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Док.СтавкаНДС КАК СтавкаНДС,
| МИНИМУМ(Док.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК Док
| ГДЕ
| Док.Ссылка = &ДокументОснование
| СГРУППИРОВАТЬ ПО
| Док.Ссылка.СуммаВключаетНДС,
| Док.Ссылка.ВалютаДокумента,
| Док.Номенклатура,
| Док.ХарактеристикаНоменклатуры,
| Док.ЕдиницаИзмерения,
| Док.СтавкаНДС
| ) КАК ТоварыИзДокумента
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| Справочник.ТипыЦенНоменклатуры КАК СпрТипыЦен
|ПО
| СпрТипыЦен.Ссылка В (&ПодчиненныеТипыЦен)
|ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен В (&ПодчиненныеТипыЦен)) КАК ЦеныНоменклатурыСрезПоследних
|ПО
| СпрТипыЦен.Ссылка = ЦеныНоменклатурыСрезПоследних.ТипЦен
| И ТоварыИзДокумента.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И ТоварыИзДокумента.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
|УПОРЯДОЧИТЬ ПО
| ТоварыИзДокумента.НомерСтроки
|";
СтруктураПоиска = Новый Структура;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтруктураПоиска.Вставить("Номенклатура" , Выборка.Номенклатура);
СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", Выборка.Номенклатура.ЦеноваяГруппаНоменклатуры);
СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТаблицаЦен, СтруктураПоиска);
Если СтрокаТабличнойЧасти = Неопределено Тогда
СтрокаТабличнойЧасти = ТаблицаЦен.Добавить();
СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.Номенклатура.ЦеноваяГруппаНоменклатуры;
СтрокаТабличнойЧасти.ЦеноваяГруппаНоменклатуры = Выборка.Номенклатура.ЦеноваяГруппаНоменклатуры;
СтрокаТабличнойЧасти.ПриходнаяЦена = Выборка.Цена;
КонецЕсли;
ТипЦенНоменклатуры = Выборка.ТипЦен;
СтрокаТипаЦен = ТипыЦен.Найти(ТипЦенНоменклатуры);
НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[ТипЦенНоменклатуры];
ОкруглятьВБольшуюСторону = ТипЦенНоменклатуры.ОкруглятьВБольшуюСторону;
ПорядокОкругления = ТипЦенНоменклатуры.ПорядокОкругления;
ВалютаДокумента = Выборка.ВалютаТипаЦены;
ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
БазоваяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Выборка.Цена,
Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатурыКонтрагентов,
Выборка.СуммаВключаетНДС,
ТипЦенНоменклатуры.ЦенаВключаетНДС,
ТипЦенНоменклатуры.ЦенаВключаетНДС,
НалоговыйУчет.ПолучитьСтавкуНДС(Выборка.СтавкаНДС));
// СпособРасчетаЦены = Выборка.СпособРасчетаЦены;
// НовыйПроцент = Выборка.ПроцентСкидкиНаценки;
// ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
Если (НЕ ЗначениеЗаполнено(ТипЦенНоменклатуры.БазовыйТипЦен))
ИЛИ ТипЦенБазовый = ТипЦенНоменклатуры Тогда
НоваяЦена = БазоваяЦена;
СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(Выборка.ВалютаТипаЦены, Дата);
НоваяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(НоваяЦена, Выборка.ВалютаДокумента, Выборка.ВалютаТипаЦены, СтруктураКурсаВзаиморасчетов.Курс, СтруктураКурсаВзаиморасчетов.Кратность);
Иначе
//Если СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип Тогда
// НоваяЦена = БазоваяЦена * (1 + НовыйПроцент / 100);
//ИначеЕсли СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоВхождениюБазовойЦеныВДиапазон Тогда
// НоваяЦена = Ценообразование.ПолучитьЦенуПоЦеновымДиапазонам(ТипЦенНоменклатуры, Дата, БазоваяЦена, ВалютаДокумента, ВалютаДокумента);
// НовыйПроцент = 0;
//Иначе
// НоваяЦена = 0;
//КонецЕсли;
СтруктураКурсаВзаиморасчетов = МодульВалютногоУчета.ПолучитьКурсВалюты(Выборка.ВалютаТипаЦены, Дата);
НоваяЦена = Ценообразование.ПересчитатьЦенуПриИзмененииВалюты(НоваяЦена, Выборка.ВалютаДокумента, Выборка.ВалютаТипаЦены, СтруктураКурсаВзаиморасчетов.Курс, СтруктураКурсаВзаиморасчетов.Кратность);
НоваяЦена = Ценообразование.ОкруглитьЦену(НоваяЦена, ПорядокОкругления, ОкруглятьВБольшуюСторону);
КонецЕсли;
СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки] = НоваяЦена;
// СтрокаТабличнойЧасти["СпособРасчета" + НомерСоответствияТекущейКолонки] = СпособРасчетаЦены;
СтрокаТабличнойЧасти["валюта" + НомерСоответствияТекущейКолонки] = ВалютаДокумента;
СтрокаТабличнойЧасти["единица" + НомерСоответствияТекущейКолонки] = ЕдиницаИзмерения;
// СтрокаТабличнойЧасти["процент" + НомерСоответствияТекущейКолонки] = НовыйПроцент;
КонецЦикла;
КонецПроцедуры //
А вот эти колонки
Пробежался поиском по модулю, закоменнтил везде где есть название ненужной мне колонки