![]() |
![]() |
![]() |
|
Добавление итоговой суммы НДС на форме списока Покупка-Счет-фактура полученный | ☑ | ||
---|---|---|---|---|
0
rmuratuly
20.10.15
✎
15:01
|
Подскажите, пожалуйста, пытаюсь вывести итоговую сумму НДС на форме списка документов Покупка-Счет-фактура полученный. Какую процедуру нужно добавить в модуле формы списка? Нужно что бы там отражался СуммаНДС взятое с СчетФактураПолученный - ФормаДокумента - ОбщаяСуммаНДС.
Скрин формы списка: http://postimg.org/image/f3d3tqjet/ 1С:Предприятие 8.2 |
|||
1
Михаил Козлов
20.10.15
✎
15:15
|
Если обычные формы, попробуйте в событии табличного поля ПриПолученииДанных установить текст в ячейку НДС из реквизита документа СуммаНДСДокумента (или как он у Вас называется).
|
|||
2
rmuratuly
20.10.15
✎
15:24
|
ДД! Так как я новичок, опишите пожалуйста подробнее.
В событиях отсутствует мне нужная поля СуммаНДС. |
|||
3
Михаил Козлов
20.10.15
✎
15:36
|
Реквизит документа, содержательно означающий сумму НДС есть?
Если есть - добавьте через размещение его на форму списка. Если нет, то нужно смотреть, как он вычисляется на форме документа. |
|||
4
rmuratuly
20.10.15
✎
15:46
|
Форма документа
//////////////////////////////////////////////////////////////////////////////// // ПЕРЕМЕННЫЕ МОДУЛЯ // Хранит текущую дату документа - для проверки перехода документа в другой период установки номера Перем мТекущаяДатаДокумента; // Хранит дерево макетов печатных форм Перем мДеревоМакетов; // Хранит элемент управления подменю печати Перем мПодменюПечати; // Хранит элемент управления кнопку печать по умолчанию Перем мПечатьПоУмолчанию; // Хранит дерево кнопок подменю заполнение ТЧ Перем мКнопкиЗаполненияТЧ; // Хранит валюту взаиморасчетов, установленную в текущем договоре взаиморасчетов, // используется для определения необходимости пересчетов при изменении договора. Перем мТекущаяВалютаВзаиморасчетов; // Хранит текущий договор контрагента // используется для восстановления старого договора в случае некорректного выбора нового Перем мТекущийДоговорКонтрагента; // Хранит список видов договоров, доступных для данного документа Перем мСписокВидовДоговоров; // Хранит текущую форму подбора номенклатуры Перем мФормаПодбораНоменклатуры; //Хранит текущую организацию Перем мИсходнаяОрганизация; //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Процедура выполняет необходимые действия при изменении договора взаиморасчетов // с контрагентом. // Процедура ПриИзмененииДоговора() Если НЕ ЗначениеЗаполнено(ДоговорКонтрагента) Тогда УчастникиСовместнойДеятельности.Очистить(); УстановитьВидимость(); Возврат; КонецЕсли; СпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатурыКонтрагентов; Если Метаданные.Перечисления.ВидыДоговоровКонтрагентов.ЗначенияПеречисления.Найти("СКомиссионером") <> Неопределено Тогда Если ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов["СКомиссионером"] Тогда СпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры; КонецЕсли; КонецЕсли; // Зададим, какие реквизиты надо редактировать. СтруктураРеквизитовДокумента = УправлениеЦенообразованием.ПолучитьСтруктуруРеквизитовДокументаДляЦенообразования(ЭтотОбъект); УправлениеВзаиморасчетами.ПриИзмененииЗначенияДоговора(ЭтотОбъект, мТекущаяВалютаВзаиморасчетов, мВалютаРегламентированногоУчета, СпособЗаполненияЦен, СтруктураРеквизитовДокумента, "Продажа", "Товары", мТекущийДоговорКонтрагента); мТекущаяВалютаВзаиморасчетов = ДоговорКонтрагента.ВалютаВзаиморасчетов; Если ДоговорКонтрагента.ДоговорСовместнойДеятельности Тогда УчастникиСовместнойДеятельности.Очистить(); ЗаполнениеДокументов.ЗаполнитьТабличнуюЧастьУчастникиСовместнойДеятельности(ДоговорКонтрагента, УчастникиСовместнойДеятельности); Иначе УчастникиСовместнойДеятельности.Очистить(); КонецЕсли; ЭлементыФормы.ОсновнаяПанель.Страницы.УчастникиСовместнойДеятельности.Видимость = ДоговорКонтрагента.ДоговорСовместнойДеятельности; КонецПроцедуры // Производит заполнение и установку необходимых полей при изменении товара в табличной части. // Вызывается из: // ТоварыНоменклатураПриИзменении() // ВнешнееСобытие() // Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти) // Заполняем реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС", Контрагент, ТипЦен, ДоговорКонтрагента, Дата, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС); ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПокупкиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, СтруктураШапкиДокумента, мВалютаРегламентированногоУчета); УстановитьСвойстваПоляВводаЦены(СтрокаТабличнойЧасти.Номенклатура); КонецПроцедуры // Функция формирует список запросов для передачи в форму подбора. // // Параметры: // ТабличнаяЧасть - табличная часть, для подбора в которую формируется список запросов. // // Возвращаемое значение: // Список значений - список запросов. // Функция СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть) СписокЗапросов = Новый СписокЗначений(); СписокЗапросов.Добавить(,"По справочнику"); ПустойТипЦен = НЕ ЗначениеЗаполнено(ТипЦен); Если ТабличнаяЧасть = Товары Тогда Если НЕ ПустойТипЦен Тогда СписокЗапросов.Добавить("ЦеныНоменклатуры", "Цены номенклатуры"); КонецЕсли; ИначеЕсли ТабличнаяЧасть = Услуги Тогда СписокЗапросов.Добавить("Услуги", "Услуги"); Если НЕ ПустойТипЦен Тогда СписокЗапросов.Добавить("ЦеныУслуг", "Цены услуг"); КонецЕсли; КонецЕсли; Возврат СписокЗапросов; КонецФункции // СформироватьСписокЗапросовДляПодбора() // Процедура вызывает сервисный механизм для подбора номеклатуры в табличную часть. // // Параметры: // ТабличнаяЧасть - табличная часть, в которую осуществляется подбор. // Процедура ДействиеПодбор(ТабличнаяЧасть) Перем Команда ; ЕстьЦена = Истина; Если ТабличнаяЧасть = Товары Тогда Команда = "ПодборВТабличнуюЧастьТовары"; Валюта = ВалютаДокумента; СпособЗаполненияЦен = Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатурыКонтрагентов; ИмяТабличнойЧасти = "Товары"; ИначеЕсли ТабличнаяЧасть = Услуги Тогда Команда = "ПодборВТабличнуюЧастьУслуги"; Валюта = ВалютаДокумента; ИмяТабличнойЧасти = "Услуги"; КонецЕсли; СписокВидовПодбора = СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть); ПредставлениеДок = Метаданные().Представление(); СтруктураПараметровПодбора = Новый Структура(); СтруктураПараметровПодбора.Вставить("Команда" , Команда); СтруктураПараметровПодбора.Вставить("СписокВидовПодбора" , СписокВидовПодбора); // Параметры запросов. ВременнаяДатаРасчетов = ?(НачалоДня(Дата) = НачалоДня(ТекущаяДата()), Неопределено, Дата); СтруктураПараметровПодбора.Вставить("ДатаРасчетов" , ВременнаяДатаРасчетов); СтруктураПараметровПодбора.Вставить("Склад" , Неопределено); СтруктураПараметровПодбора.Вставить("ТипЦен" , ТипЦен); СтруктураПараметровПодбора.Вставить("ДоговорКонтрагента" , ДоговорКонтрагента); СтруктураПараметровПодбора.Вставить("Контрагент" , Контрагент); СтруктураПараметровПодбора.Вставить("Организация" , Организация); СтруктураПараметровПодбора.Вставить("СпособЗаполненияЦен" , СпособЗаполненияЦен); СтруктураПараметровПодбора.Вставить("ЕстьЦена" , ЕстьЦена); СтруктураПараметровПодбора.Вставить("ВыбиратьВсе" , Истина); СтруктураПараметровПодбора.Вставить("ВалютаДокумента" , Валюта); СтруктураПараметровПодбора.Вставить("ПеретаскиватьГруппы" , Истина); СтруктураПараметровПодбора.Вставить("Заголовок", "Подбор номенклатуры в документ " + ПредставлениеДок + " № " + Номер + " (" + ИмяТабличнойЧасти + ")"); ОбработкаТабличныхЧастей.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, мФормаПодбораНоменклатуры); КонецПроцедуры // ДействиеПодбор() // Производит заполнение документа переданными из формы подбора данными. // // Параметры: // ТабличнаяЧасть - табличная часть, в которую надо добавлять подобранную позицию номенклатуры; // ЗначениеВыбора - структура, содержащая параметры подбора. // Процедура ОбработкаПодбора(ТабличнаяЧасть, ЗначениеВыбора) Экспорт Перем СпособЗаполненияЦен, ВалютаЦены; Перем Номенклатура, ЕдиницаИзмерения, Количество, Цена; // Получим параметры подбора из структуры подбора. ЗначениеВыбора.Свойство("СпособЗаполненияЦен", СпособЗаполненияЦен); ЗначениеВыбора.Свойство("ВалютаЦены" , ВалютаЦены); ЗначениеВыбора.Свойство("ЕдиницаИзмерения", ЕдиницаИзмерения); ЗначениеВыбора.Свойство("Номенклатура" , Номенклатура); ЗначениеВыбора.Свойство("Количество" , Количество); ЗначениеВыбора.Свойство("Цена" , Цена); // Ищем выбранную позицию в таблице подобранной номенклатуры. // Если найдем - увеличим количество; не найдем - добавим новую строку. СтруктураОтбора = Новый Структура(); СтруктураОтбора.Вставить("Номенклатура", Номенклатура); Если ТабличнаяЧасть = Товары Тогда СтруктураОтбора.Вставить("ЕдиницаИзмерения", ЕдиницаИзмерения); КонецЕсли; Если ЗначениеЗаполнено(Цена) Тогда СтруктураОтбора.Вставить("Цена", Цена); КонецЕсли; СтрокаТабличнойЧасти = ОбработкаТабличныхЧастей.НайтиСтрокуТабЧасти(ТабличнаяЧасть, СтруктураОтбора); Если СтрокаТабличнойЧасти <> Неопределено Тогда // Нашли, увеличиваем количество в первой найденной строке. СтрокаТабличнойЧасти.Количество = СтрокаТабличнойЧасти.Количество + Количество; Если ТабличнаяЧасть = Товары Тогда // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); УчетНДСИАкциза.РассчитатьОборотПоРеализацииТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ИначеЕсли ТабличнаяЧасть = Услуги Тогда // Рассчитать реквизиты табличной части. // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); УчетНДСИАкциза.РассчитатьОборотПоРеализацииТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; Иначе // Не нашли - добавляем новую строку. СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить(); СтрокаТабличнойЧасти.Номенклатура = Номенклатура; СтрокаТабличнойЧасти.Количество = Количество; Если ТабличнаяЧасть = Товары Тогда СтрокаТабличнойЧасти.ЕдиницаИзмерения = ЕдиницаИзмерения; СтрокаТабличнойЧасти.Коэффициент = 1; ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Пересчитаем цену в валюту документа. Цена = УправлениеЦенообразованием.ПересчитатьЦенуПриИзмененииВалюты(Цена, ВалютаЦены, ВалютаДокумента, ОбщегоНазначения.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета), ОбщегоНазначения.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета), Дата); СтрокаТабличнойЧасти.Цена = ОбработкаТабличныхЧастей.ПересчитатьЦенуПриИзмененииФлаговНалогов(Цена, СпособЗаполненияЦен, ?(ЗначениеЗаполнено(ТипЦен), ТипЦен.ЦенаВключаетНДС, СуммаВключаетНДС), УчитыватьНДС, СуммаВключаетНДС, УчетНДСИАкциза.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); // Рассчитываем реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); УчетНДСИАкциза.РассчитатьОборотПоРеализацииТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ИначеЕсли ТабличнаяЧасть = Услуги Тогда // Заполняем реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Пересчитаем цену в валюту документа. Цена = УправлениеЦенообразованием.ПересчитатьЦенуПриИзмененииВалюты(Цена, ВалютаЦены, ВалютаДокумента, ОбщегоНазначения.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета), ОбщегоНазначения.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета), Дата); СтрокаТабличнойЧасти.Цена = ОбработкаТабличныхЧастей.ПересчитатьЦенуПриИзмененииФлаговНалогов(Цена, СпособЗаполненияЦен, ?(ЗначениеЗаполнено(ТипЦен), ТипЦен.ЦенаВключаетНДС, СуммаВключаетНДС), УчитыватьНДС, СуммаВключаетНДС, УчетНДСИАкциза.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС)); ОбработкаТабличныхЧастей.ЗаполнитьСодержаниеТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Рассчитываем реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); УчетНДСИАкциза.РассчитатьОборотПоРеализацииТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; КонецЕсли; ТабличнаяЧастьИмя = Метаданные.НайтиПоТипу(ТипЗнч(ТабличнаяЧасть)).Имя; ЭлементыФормы[ТабличнаяЧастьИмя].ТекущаяСтрока = СтрокаТабличнойЧасти; ЭлементыФормы[ТабличнаяЧастьИмя].ТекущаяКолонка = ЭлементыФормы[ТабличнаяЧастьИмя].Колонки["Количество"]; КонецПроцедуры // ОбработкаПодбора() // Обработчик устанавливается динамически методом "ПодключитьОбработчикИзмененияДанных" // в процедуре "ОткрытьПодборНоменклатуры" общего модуля "ОбработкаТабличныхЧастей" // Процедура обновляет параметры в форме подбора, если она открыта. // // Параметры: // Реквизит - измененный реквизит. // Процедура ОбновитьФормуПодбора(Реквизит) ОбработкаТабличныхЧастей.ОбновитьПараметрыИФормуПодбора(ЭтотОбъект, ЭтаФорма, Реквизит); КонецПроцедуры // ОбновитьФормуПодбора() //Функция проверяет на соответствие выбранного документа "Авансовый отчет" //если ссылка на данную счет-фактуру в данном документе. // Функция ПроверитьНаСоответствиеДокумента(ДокСсылка) ТабЧастьТовары = ДокСсылка.Товары; ТабЧастьУслуги = ДокСсылка.Прочее; СтруктураОтбора = Новый Структура("СчетФактура", Ссылка); СтрокиТовары = ТабЧастьТовары.НайтиСтроки(СтруктураОтбора); СтрокиУслуги = ТабЧастьТовары.НайтиСтроки(СтруктураОтбора); Если СтрокиТовары.Количество() + СтрокиУслуги.Количество() = 0 Тогда Сообщить("Для выбранного авансового отчета, в табличной части ""Товары"" и ""Прочее"" """ + ДокСсылка + """ отсутствуют ссылки на данный Счет-фактуру..." + Символы.ВК + "Выбранный документ-основание будет очищен!", СтатусСообщения.Важное); Возврат Истина; КонецЕсли; Возврат Ложь; КонецФункции // ПроверитьНаСоответствиеДокумента // Процедура устанавливает подменю "Печать" и кнопку "Печать по умолчанию" при необходимости // Процедура УстановитьКнопкиПечати() мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, ПолучитьСтруктуруПечатныхФорм(), Новый Действие("ОсновныеДействияФормыПечать"), Новый Действие("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию")); УниверсальныеМеханизмы.УстановитьПодменюПечати (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов.Строки.Количество() > 0); УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов, Метаданные().Имя,Новый Действие("ОсновныеДействияФормыПечатьПоУмолчанию")); Если Не мПодменюПечати = Неопределено Тогда УниверсальныеМеханизмы.СформироватьПодменю(мДеревоМакетов, мПодменюПечати,Истина,Истина); КонецЕсли; КонецПроцедуры //Процедура обрабатывает событие "ПриИзменении" поле ввода "Организация" // Процедура ПриИзмененииЗначенияОрганизации(ФлагИзмененияОрганизации = Истина) Оповестить("ПриИзмененииОрганизацииСтруктурногоПодразделенияПодборОС", ЭтотОбъект); Если (мИсходнаяОрганизация = Организация И ЗначениеЗаполнено(мИсходнаяОрганизация)) ИЛИ НЕ ФлагИзмененияОрганизации Тогда Возврат; КонецЕсли; //при смене организации очищаем номер документа, если он не пустой Если Не ПустаяСтрока(Номер) Тогда РаботаСДиалогами.СброситьУстановленныйКодНомерОбъекта(ЭтотОбъект, "Номер", ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецЕсли; мИсходнаяОрганизация = Организация; Если Не ДокументыОснования.Количество() = 0 Тогда Предупреждение("Организация изменена, табличная часть ""Документы-основания"" будет очищена!"); ДокументыОснования.Очистить(); КонецЕсли; Если Организация <> ОсновнойСчетФактура.Организация И ОсновнойСчетФактура <> Документы.СчетФактураПолученный.ПустаяСсылка() Тогда Сообщить("Внимание! Организация основного счета-фактуры не соответствует организации документа! Поле ""Основной счет-фактура"" будет очищен!", СтатусСообщения.Внимание); ОсновнойСчетФактура = Документы.СчетФактураПолученный.ПустаяСсылка(); КонецЕсли; // Выполняем общие действия для всех документов при изменении Организация. РаботаСДиалогами.ПриИзмененииЗначенияОрганизации(ЭтотОбъект, глТекущийПользователь, ); Покупатель = УчетНДСИАкциза.ПолучитьПлательщикаНДСВСчетеФактуре(Организация); // Могли поменять договор. ПриИзмененииДоговора(); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ВНЕШНИМ ВИДОМ ФОРМЫ // Процедура формирует текст в информационной надписи об итогах документа. // // Параметры: // Нет. // Процедура ОбновитьПодвал() // При изменении данных обновим суммы в подвале. ОбщаяСумма = УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "Товары") + УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "Услуги") + УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "ОС") + УчетНДСИАкциза.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "НМА"); ОбщаяСуммаНДС = Товары.Итог("СуммаНДС")+Услуги.Итог("СуммаНДС") + ОС.Итог("СуммаНДС") + НМА.Итог("СуммаНДС"); ЭлементыФормы.Всего.Значение = ОбщегоНазначения.ФорматСумм(ОбщаяСумма); ЭлементыФормы.ВсегоНДС.Значение = ОбщегоНазначения.ФорматСумм(ОбщаяСуммаНДС); ВременнаяСтрока = ""; Если (ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента)) И (ДокументОбъект.ВалютаДокумента <> мВалютаРегламентированногоУчета) Тогда ВременнаяСтрока = ВременнаяСтрока + ОбщегоНазначения.КратностьДокумента(ДокументОбъект, мВалютаРегламентированногоУчета) + " " + ДокументОбъект.ВалютаДокумента + " = " + ОбщегоНазначения.КурсДокумента(ДокументОбъект, мВалютаРегламентированногоУчета) + мВалютаРегламентированногоУчета + ", "; КонецЕсли; Если ЗначениеЗаполнено(ДокументОбъект.ТипЦен) Тогда ВременнаяСтрока = ВременнаяСтрока + "Тип цен: " + ДокументОбъект.ТипЦен; Иначе ВременнаяСтрока = ВременнаяСтрока + "Тип цен: Не заполнено!"; КонецЕсли; ЭлементыФормы.ИнфНадписьТоварыИтоги.Заголовок = ВременнаяСтрока; Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсего.Заголовок = "Всего (<>):"; Иначе ЭлементыФормы.НадписьВсего.Заголовок = "Всего (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; Если СуммаВключаетНДС Тогда ЭлементыФормы.НадписьВсегоНДС.Заголовок = "НДС (в т. ч.):"; Иначе ЭлементыФормы.НадписьВсегоНДС.Заголовок = "НДС (сверху):"; КонецЕсли; КонецПроцедуры // ОбновитьПодвал() // Устанавливает соответстующие свойства поля ввода цены при изменении // номенклатуры в текущей строке табличной части. // Для оптового склада или услуг в рознице цена редактируется, // Для товаров на розничном складе выбирается из списка наличия в регистре. // // Параметры: // Номенклатура - ссылка на справочник, элемент номенклатуры, для которого будем устанавливать цену // Процедура УстановитьСвойстваПоляВводаЦены(Номенклатура) ТекущаяСтрока = ЭлементыФормы.Товары.ТекущиеДанные; ЭлементУправления = ЭлементыФормы.Товары.Колонки.Цена.ЭлементУправления; ЭлементУправления.КнопкаСпискаВыбора = Ложь; КонецПроцедуры // УстановитьСвойстваПоляВводаЦены() //Устанваливает доступность для элементов упраления, в зависимости от признака //"Подтвержден документами отгрузки". // Процедура УстановитьДоступность() Если ПодтвержденДокументамиОтгрузки Тогда ЭлементыФормы.Контрагент.ТолькоПросмотр = Истина; ЭлементыФормы.ДоговорКонтрагента.ТолькоПросмотр = Истина; ЭлементыФормы.Контрагент.ТолькоПросмотр = Истина; ЭлементыФормы.Организация.ТолькоПросмотр = Истина; ЭлементыФормы.Услуги.ТолькоПросмотр = Истина; ЭлементыФормы.Товары.ТолькоПросмотр = Истина; ЭлементыФормы.ОС.ТолькоПросмотр = Истина; ЭлементыФормы.НМА.ТолькоПросмотр = Истина; ЭлементыФормы.УчастникиСовместнойДеятельности.ТолькоПросмотр = Истина; ЭлементыФормы.СтруктурноеПодразделениеОрганизация.ТолькоПросмотр = Истина; //для документов оснований ЭлементыФормы.ДокументыОснования.Колонки.ДокументОснование.ЭлементУправления.ТолькоПросмотр = Истина; ЭлементыФормы.ДокументыОснования.АвтоКонтекстноеМеню = Ложь; //доступность для действий командных панелей ЭлементыФормы.КоманднаяПанельНМА.Доступность = Ложь; ЭлементыФормы.КоманднаяПанельОС.Доступность = Ложь; ЭлементыФормы.КоманднаяПанельТовары.Доступность = Ложь; ЭлементыФормы.КоманднаяПанельУслуги.Доступность = Ложь; ЭлементыФормы.КоманднаяПанельДокументыОснования.Доступность = Ложь; //Доступность кнопок подменю "Автозаполнение" ЭлементыФормы.ДействияФормы.Кнопки.АвтоЗаполнение.Кнопки.СогласоватьПоДокументаОснования.Доступность = Ложь; ЭлементыФормы.ДействияФормы.Кнопки.АвтоЗаполнение.Кнопки.ДобваитьИзДокументовОснования.Доступность = Ложь; //кнопка "ЦенаИВалюта" ЭлементыФормы.ДействияФормы.Кнопки.ДействиеЦеныВалюта.Доступность = Ложь; Иначе ЭлементыФормы.Контрагент.ТолькоПросмотр = Ложь; ЭлементыФормы.ДоговорКонтрагента.ТолькоПросмотр = Ложь; ЭлементыФормы.Контрагент.ТолькоПросмотр = Ложь; // Проверка ведения однофирменности ЭлементыФормы.Организация.ТолькоПросмотр = НЕ УчетПоВсемОрганизациям; ЭлементыФормы.Товары.ТолькоПросмотр = Ложь; ЭлементыФормы.Услуги.ТолькоПросмотр = Ложь; ЭлементыФормы.ОС.ТолькоПросмотр = Ложь; ЭлементыФормы.НМА.ТолькоПросмотр = Ложь; ЭлементыФормы.УчастникиСовместнойДеятельности.ТолькоПросмотр = Ложь; ЭлементыФормы.СтруктурноеПодразделениеОрганизация.ТолькоПросмотр = Ложь; //для документов оснований ЭлементыФормы.ДокументыОснования.Колонки.ДокументОснование.ЭлементУправления.ТолькоПросмотр = Ложь; ЭлементыФормы.ДокументыОснования.АвтоКонтекстноеМеню = Истина; //доступность для действий командных панелей ЭлементыФормы.КоманднаяПанельНМА.Доступность = Истина; ЭлементыФормы.КоманднаяПанельОС.Доступность = Истина; ЭлементыФормы.КоманднаяПанельТовары.Доступность = Истина; ЭлементыФормы.КоманднаяПанельУслуги.Доступность = Истина; ЭлементыФормы.КоманднаяПанельДокументыОснования.Доступность = Истина; //Доступность кнопок подменю "Автозаполнение" ЭлементыФормы.ДействияФормы.Кнопки.АвтоЗаполнение.Кнопки.СогласоватьПоДокументаОснования.Доступность = Истина; ЭлементыФормы.ДействияФормы.Кнопки.АвтоЗаполнение.Кнопки.ДобваитьИзДокументовОснования.Доступность = Истина; //кнопка "ЦенаИВалюта" ЭлементыФормы.ДействияФормы.Кнопки.ДействиеЦеныВалюта.Доступность = Истина; КонецЕсли; УстановитьДоступностьОсновногоСчетаФактуры(); КонецПроцедуры // Процедура устанавливает видимость для тех колонок в табличной части // "Товары", видимость которых определяется реквизитами документа. // // Параметры: // Нет. // Процедура УстановитьВидимость() Колонки = ЭлементыФормы.Товары.Колонки; ЭлементыФормы.ОсновнаяПанель.Страницы.УчастникиСовместнойДеятельности.Видимость = ДоговорКонтрагента.ДоговорСовместнойДеятельности; КонецПроцедуры // УстановитьВидимость() // Устанавливает текущую страницу панели в зависимости от количества // строк, занесенных в табличные части. // Процедура УстановитьТекущуюСтраницуОсновнойПанели() МаксКоличество = Макс(Товары.Количество(), Услуги.Количество(), ОС.Количество(), НМА.Количество()); Если МаксКоличество = 0 ИЛИ МаксКоличество = Товары.Количество() Тогда ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.Товары; ИначеЕсли МаксКоличество = Услуги.Количество() Тогда ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.Услуги; ИначеЕсли МаксКоличество = ОС.Количество() Тогда ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.ОС; Иначе ЭлементыФормы.ОсновнаяПанель.Теку |
|||
5
rmuratuly
20.10.15
✎
15:47
|
Форма Списка
Перем мВалютаРегламентированногоУчета; // Процедура вызова структуры подчиненности документа // Процедура ДействияФормыСтруктураПодчиненностиДокумента(Кнопка) Если ЭлементыФормы.ДокументСписок.ТекущиеДанные = Неопределено тогда Возврат КонецЕсли; РаботаСДиалогами.ПоказатьСтруктуруПодчиненностиДокумента(ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка); КонецПроцедуры // Процедура - обработчик события "ПередОткрытием" формы // Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) // Установка подменю "Советы". РаботаСДиалогами.УстановитьПодменюСоветы(ЭлементыФормы.ДействияФормы, "СчетФактураПолученный"); // обработка колонки ручной корректировки ДокументСписок.Колонки.Добавить("РучнаяКорректировка"); КонецПроцедуры // Процедура вызывается при нажатии кнопки "Советы" командной панели формы. // Процедура ДействияФормыОткрытьСоветы(Кнопка) РаботаСДиалогами.ОткрытьСоветы(Кнопка); КонецПроцедуры //ДействияФормыОткрытьСоветы() // Процедура открывает форму свойств документа // Процедура ДействияФормыДействиеОткрытьСвойства(Кнопка) Если ЭтаФорма.ЭлементыФормы.ДокументСписок.ТекущаяСтрока = Неопределено тогда Возврат КонецЕсли; РаботаСДиалогами.ОткрытьСвойстваДокумента(ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка, ЭтаФорма); КонецПроцедуры // Процедура открывает форму категорий документа // Процедура ДействияФормыДействиеОткрытьКатегории(Кнопка) Если ЭтаФорма.ЭлементыФормы.ДокументСписок.ТекущаяСтрока = Неопределено тогда Возврат КонецЕсли; РаботаСДиалогами.ОткрытьКатегорииДокумента(ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка, ЭтаФорма); КонецПроцедуры //Процедура - обработчик события "ПриОткрытии" формы // Процедура ПриОткрытии() // Проверка однофирменности РаботаСДиалогами.УстановитьОтборПоОрганизации(ЭтаФорма, УчетПоВсемОрганизациям, ОсновнаяОрганизация, "ДокументСписок"); // Видимость колонки "СтруктурноеПодразделение" РаботаСДиалогами.ВидимостьКолонкиСтруктурногоПодразделения(ЭлементыФормы.ДокументСписок); ЭСФСервер.СписокСчетовФактурПриСозданииНаСервере(ЭтаФорма, Неопределено, Неопределено); КонецПроцедуры //Процедура - обработчик события "ОбработкаОповещения" формы // Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) ЭСФКлиент.СписокСчетовФактурОбработкаОповещения(ЭтаФорма, "ДокументСписок", ИмяСобытия, Параметр, Источник); КонецПроцедуры //Процедура открывает форму движений документа // Процедура ОсновныеДействияФормыНастройка(Кнопка) Если ЭтаФорма.ЭлементыФормы.ДокументСписок.ТекущаяСтрока = Неопределено тогда Возврат КонецЕсли; ОбщегоНазначения.РучнаяКорректировкаОсновнаяФорма(Ложь,ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка, Истина); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ ФОРМЫ //Процедура-обработчик "ПриПолученииДанных" табличного поля "ДокументСписок" // Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок) ОбщегоНазначения.РучнаяКорректировкаСписокПриПолученииДанных(ОформленияСтрок); ЭСФКлиент.СписокСчетовФактурПриПолученииДанных(Ложь, ЭлементыФормы.ДокументСписок, ОформленияСтрок); КонецПроцедуры // ЭСФ Процедура ОткрытьЭСФ(Кнопка) ЭСФКлиент.ОткрытьЭСФ(ЭлементыФормы.ДокументСписок.ВыделенныеСтроки); КонецПроцедуры Процедура СвязанныеЭСФ(Кнопка) ЭСФКлиент.СвязанныеЭСФ(ЭлементыФормы.ДокументСписок.ВыделенныеСтроки); КонецПроцедуры Процедура СписокЭСФ(Кнопка) ЭСФКлиент.СписокЭСФ(ПредопределенноеЗначение("Перечисление.НаправленияЭСФ.Входящий")); КонецПроцедуры // Конец ЭСФ мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); |
|||
6
Михаил Козлов
20.10.15
✎
15:58
|
(5) Я так и не понял, есть реквизит документа, отвечающий за сумму НДС или нет.
Посмотрите, что написано в ЭСФКлиент.СписокСчетовФактурПриПолученииДанных(Ложь, ЭлементыФормы.ДокументСписок, ОформленияСтрок); и по аналогии установите Текст в ячейку "СуммаНДС" (если нет реквизита - см. выше), предварительно выяснив, как эта сумма вычисляется. |
|||
7
rmuratuly
21.10.15
✎
06:17
|
ДД! Добавил СуммаНДС в Реквизиты Документа. В ФормаСписка добавил Колонку Сумма НДС. Что и где нужно добавить ещё?
Скрин: http://s23.postimg.org/o9ze6im57/image.jpg |
|||
8
Михаил Козлов
21.10.15
✎
16:50
|
(7) Вам нужно обеспечить "правильное" заполнение этого реквизита. Например, в ПередЗаписью объекта.
|
|||
9
rmuratuly
22.10.15
✎
14:43
|
попробовал все варианты. Все равно результат 0. Чё ещё можно придумать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |