|
ПКО | ☑ | ||
---|---|---|---|---|
0
KukenKvaken
01.10.18
✎
11:02
|
Добрый день.
Есть ПКО. в нем есть строчка основание https://ibb.co/dYtqDe в основании указан только тип документа его номер и дата. а хочется чтоб он из документа брал еще одну строчку туда: из раздела Тур: https://ibb.co/dzPVDe как допелить? Модуль Объекта ПКО #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область ПроцедурыЗаполненияДокумента // Процедура заполняет расшифровку платежа. // Процедура ЗаполнитьРасшифровкуПлатежа() Экспорт Компания = УправлениеНебольшойФирмойСервер.ПолучитьОрганизацию(Организация); Если НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ОблагаетсяНДС Тогда СтавкаНДСПоУмолчанию = Организация.СтавкаНДСПоУмолчанию; ИначеЕсли НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.НеОблагаетсяНДС Тогда СтавкаНДСПоУмолчанию = УправлениеНебольшойФирмойПовтИсп.ПолучитьСтавкуНДСБезНДС(); Иначе СтавкаНДСПоУмолчанию = УправлениеНебольшойФирмойПовтИсп.ПолучитьСтавкуНДСНоль(); КонецЕсли; СтруктураПоВалюте = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", ВалютаДенежныхСредств)); КурсВалютыДС = ?( СтруктураПоВалюте.Курс = 0, 1, СтруктураПоВалюте.Курс ); КратностьВалютыДС = ?( СтруктураПоВалюте.Курс = 0, 1, СтруктураПоВалюте.Кратность ); // Заполнение расшифровки расчетов по умолчанию. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасчетыСПокупателямиОстатки.Организация КАК Организация, | РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент, | РасчетыСПокупателямиОстатки.Договор КАК Договор, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоДокументам | ТОГДА РасчетыСПокупателямиОстатки.Документ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ КАК Документ, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоЗаказам | ТОГДА РасчетыСПокупателямиОстатки.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) | КОНЕЦ КАК Заказ, | РасчетыСПокупателямиОстатки.ТипРасчетов КАК ТипРасчетов, | СУММА(РасчетыСПокупателямиОстатки.СуммаОстаток) КАК СуммаОстаток, | СУММА(РасчетыСПокупателямиОстатки.СуммаВалОстаток) КАК СуммаВалОстаток, | РасчетыСПокупателямиОстатки.Документ.Дата КАК ДокументДата, | СУММА(ВЫРАЗИТЬ(РасчетыСПокупателямиОстатки.СуммаВалОстаток * КурсыВалютРасчетов.Курс * КурсыВалютДокумента.Кратность / (КурсыВалютДокумента.Курс * КурсыВалютРасчетов.Кратность) КАК ЧИСЛО(15, 2))) КАК СуммаВалДокумента, | КурсыВалютДокумента.Курс КАК КурсДенежныхСредств, | КурсыВалютДокумента.Кратность КАК КратностьДенежныхСредств, | КурсыВалютРасчетов.Курс КАК Курс, | КурсыВалютРасчетов.Кратность КАК Кратность |ИЗ | (ВЫБРАТЬ | РасчетыСПокупателямиОстатки.Организация КАК Организация, | РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент, | РасчетыСПокупателямиОстатки.Договор КАК Договор, | РасчетыСПокупателямиОстатки.Документ КАК Документ, | РасчетыСПокупателямиОстатки.Заказ КАК Заказ, | РасчетыСПокупателямиОстатки.ТипРасчетов КАК ТипРасчетов, | ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаОстаток, 0) КАК СуммаОстаток, | ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаВалОстаток, 0) КАК СуммаВалОстаток | ИЗ | РегистрНакопления.РасчетыСПокупателями.Остатки( | , | Организация = &Организация | И Контрагент = &Контрагент | // ТекстДоговорОтбор | И ТипРасчетов = ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг)) КАК РасчетыСПокупателямиОстатки | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ДвиженияДокументаРасчетыСПокупателями.Организация, | ДвиженияДокументаРасчетыСПокупателями.Контрагент, | ДвиженияДокументаРасчетыСПокупателями.Договор, | ДвиженияДокументаРасчетыСПокупателями.Документ, | ДвиженияДокументаРасчетыСПокупателями.Заказ, | ДвиженияДокументаРасчетыСПокупателями.ТипРасчетов, | ВЫБОР | КОГДА ДвиженияДокументаРасчетыСПокупателями.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА -ЕСТЬNULL(ДвиженияДокументаРасчетыСПокупателями.Сумма, 0) | ИНАЧЕ ЕСТЬNULL(ДвиженияДокументаРасчетыСПокупателями.Сумма, 0) | КОНЕЦ, | ВЫБОР | КОГДА ДвиженияДокументаРасчетыСПокупателями.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА -ЕСТЬNULL(ДвиженияДокументаРасчетыСПокупателями.СуммаВал, 0) | ИНАЧЕ ЕСТЬNULL(ДвиженияДокументаРасчетыСПокупателями.СуммаВал, 0) | КОНЕЦ | ИЗ | РегистрНакопления.РасчетыСПокупателями КАК ДвиженияДокументаРасчетыСПокупателями | ГДЕ | ДвиженияДокументаРасчетыСПокупателями.Регистратор = &Ссылка | И ДвиженияДокументаРасчетыСПокупателями.Период <= &Период | И ДвиженияДокументаРасчетыСПокупателями.Организация = &Организация | И ДвиженияДокументаРасчетыСПокупателями.Контрагент = &Контрагент | И ДвиженияДокументаРасчетыСПокупателями.ТипРасчетов = ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг)) КАК РасчетыСПокупателямиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, Валюта = &Валюта) КАК КурсыВалютДокумента | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютРасчетов | ПО РасчетыСПокупателямиОстатки.Договор.ВалютаРасчетов = КурсыВалютРасчетов.Валюта |ГДЕ | РасчетыСПокупателямиОстатки.СуммаВалОстаток > 0 | |СГРУППИРОВАТЬ ПО | РасчетыСПокупателямиОстатки.Организация, | РасчетыСПокупателямиОстатки.Контрагент, | РасчетыСПокупателямиОстатки.Договор, | РасчетыСПокупателямиОстатки.Документ, | РасчетыСПокупателямиОстатки.Заказ, | РасчетыСПокупателямиОстатки.ТипРасчетов, | РасчетыСПокупателямиОстатки.Документ.Дата, | КурсыВалютДокумента.Курс, | КурсыВалютДокумента.Кратность, | КурсыВалютРасчетов.Курс, | КурсыВалютРасчетов.Кратность, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоДокументам | ТОГДА РасчетыСПокупателямиОстатки.Документ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоЗаказам | ТОГДА РасчетыСПокупателямиОстатки.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.Заказпокупателя.ПустаяСсылка) | КОНЕЦ | |УПОРЯДОЧИТЬ ПО | ДокументДата"; Запрос.УстановитьПараметр("Организация", Компания); Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("Период", Дата); Запрос.УстановитьПараметр("Валюта", ВалютаДенежныхСредств); Запрос.УстановитьПараметр("Ссылка", Ссылка); НуженОтборПоДоговорам = УправлениеНебольшойФирмойПовтИсп.ТребуетсяКонтрольДоговоровКонтрагентов(); СписокВидовДоговоров = Справочники.ДоговорыКонтрагентов.ПолучитьСписокВидовДоговораДляДокумента(Ссылка, ВидОперации); Если НуженОтборПоДоговорам И Контрагент.ВестиРасчетыПоДоговорам Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "// ТекстДоговорОтбор", "И Договор.ВидДоговора В (&СписокВидовДоговоров)"); Запрос.УстановитьПараметр("СписокВидовДоговоров", СписокВидовДоговоров); КонецЕсли; ДоговорПоУмолчанию = Справочники.ДоговорыКонтрагентов.ПолучитьДоговорПоУмолчаниюПоОрганизацииВидуДоговора( Контрагент, Организация, СписокВидовДоговоров ); СтруктураКурсВалютыДоговораПоУмолчанию = РегистрыСведений.КурсыВалют.ПолучитьПоследнее( Дата, Новый Структура("Валюта", ДоговорПоУмолчанию.ВалютаРасчетов) ); ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать(); РасшифровкаПлатежа.Очистить(); СуммаОсталосьРаспределить = СуммаДокумента; Пока СуммаОсталосьРаспределить > 0 Цикл НоваяСтрока = РасшифровкаПлатежа.Добавить(); Если ВыборкаРезультатаЗапроса.Следующий() Тогда ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаРезультатаЗапроса); Если ВыборкаРезультатаЗапроса.СуммаВалДокумента <= СуммаОсталосьРаспределить Тогда // сумма остатка меньше или равна чем осталось распределить НоваяСтрока.СуммаРасчетов = ВыборкаРезультатаЗапроса.СуммаВалОстаток; НоваяСтрока.СуммаПлатежа = ВыборкаРезультатаЗапроса.СуммаВалДокумента; НоваяСтрока.СтавкаНДС = СтавкаНДСПоУмолчанию; НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаПлатежа - (НоваяСтрока.СуммаПлатежа) / ((СтавкаНДСПоУмолчанию.Ставка + 100) / 100); СуммаОсталосьРаспределить = СуммаОсталосьРаспределить - ВыборкаРезультатаЗапроса.СуммаВалДокумента; Иначе // сумма остатка больше чем нужно распределить НоваяСтрока.СуммаРасчетов = УправлениеНебольшойФирмойСервер.ПересчитатьИзВалютыВВалюту( СуммаОсталосьРаспределить, ВыборкаРезультатаЗапроса.КурсДенежныхСредств, ВыборкаРезультатаЗапроса.Курс, ВыборкаРезультатаЗапроса.КратностьДенежныхСредств, ВыборкаРезультатаЗапроса.Кратность ); НоваяСтрока.СуммаПлатежа = СуммаОсталосьРаспределить; НоваяСтрока.СтавкаНДС = СтавкаНДСПоУмолчанию; НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаПлатежа - (НоваяСтрока.СуммаПлатежа) / ((СтавкаНДСПоУмолчанию.Ставка + 100) / 100); СуммаОсталосьРаспределить = 0; КонецЕсли; Иначе НоваяСтрока.Договор = ДоговорПоУмолчанию; НоваяСтрока.Курс = ?( СтруктураКурсВалютыДоговораПоУмолчанию.Курс = 0, 1, СтруктураКурсВалютыДоговораПоУмолчанию.Курс ); НоваяСтрока.Кратность = ?( СтруктураКурсВалютыДоговораПоУмолчанию.Кратность = 0, 1, СтруктураКурсВалютыДоговораПоУмолчанию.Кратность ); НоваяСтрока.СуммаРасчетов = УправлениеНебольшойФирмойСервер.ПересчитатьИзВалютыВВалюту( СуммаОсталосьРаспределить, КратностьВалютыДС, НоваяСтрока.Курс, КратностьВалютыДС, НоваяСтрока.Кратность ); НоваяСтрока.ПризнакАванса = Истина; НоваяСтрока.СуммаПлатежа = СуммаОсталосьРаспределить; НоваяСтрока.СтавкаНДС = СтавкаНДСПоУмолчанию; НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаПлатежа - (НоваяСтрока.СуммаПлатежа) / ((СтавкаНДСПоУмолчанию.Ставка + 100) / 100); СуммаОсталосьРаспределить = 0; КонецЕсли; КонецЦикла; Если РасшифровкаПлатежа.Количество() = 0 Тогда РасшифровкаПлатежа.Добавить(); РасшифровкаПлатежа[0].СуммаПлатежа = СуммаДокумента; КонецЕсли; СуммаПлатежа = РасшифровкаПлатежа.Итог("СуммаПлатежа"); КонецПроцедуры // ЗаполнитьРасшифровкуПлатежа() // Процедура заполняет расшифровку платежа. // Процедура ЗаполнитьРасшифровкуПлатежаАвтоЗачетДолгов() Экспорт Компания = УправлениеНебольшойФирмойСервер.ПолучитьОрганизацию(Организация); Если НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ОблагаетсяНДС Тогда СтавкаНДСПоУмолчанию = Организация.СтавкаНДСПоУмолчанию; ИначеЕсли НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.НеОблагаетсяНДС Тогда СтавкаНДСПоУмолчанию = УправлениеНебольшойФирмойПовтИсп.ПолучитьСтавкуНДСБезНДС(); Иначе СтавкаНДСПоУмолчанию = УправлениеНебольшойФирмойПовтИсп.ПолучитьСтавкуНДСНоль(); КонецЕсли; СтруктураПоВалюте = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Дата, Новый Структура("Валюта", ВалютаДенежныхСредств)); КурсВалютыДС = ?( СтруктураПоВалюте.Курс = 0, 1, СтруктураПоВалюте.Курс ); КратностьВалютыДС = ?( СтруктураПоВалюте.Курс = 0, 1, СтруктураПоВалюте.Кратность ); // Заполнение расшифровки расчетов по умолчанию. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходСоСчетаДоговорыАвтоЗачетаДолгов.Договор, | РасходСоСчетаДоговорыАвтоЗачетаДолгов.СуммаПлатежа КАК СуммаПлатежа |ПОМЕСТИТЬ ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная |ИЗ | &ДоговорыАвтоЗачетаДолгов КАК РасходСоСчетаДоговорыАвтоЗачетаДолгов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная.Договор, | СУММА(ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная.СуммаПлатежа) КАК СуммаПлатежа |ПОМЕСТИТЬ ВременнаяТаблицаДоговорыАвтоЗачета |ИЗ | ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная КАК ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная |ГДЕ | ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная.Договор <> Неопределено | И ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная.Договор <> Значение(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | |СГРУППИРОВАТЬ ПО | ВременнаяТаблицаДоговорыАвтоЗачетаПредварительная.Договор |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | РасчетыСПокупателямиОстатки.Организация КАК Организация, | РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент, | РасчетыСПокупателямиОстатки.Договор КАК Договор, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоДокументам | ТОГДА РасчетыСПокупателямиОстатки.Документ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ КАК Документ, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоЗаказам | ТОГДА РасчетыСПокупателямиОстатки.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка) | КОНЕЦ КАК Заказ, | РасчетыСПокупателямиОстатки.ТипРасчетов КАК ТипРасчетов, | СУММА(ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаОстаток, 0)) КАК СуммаОстаток, | СУММА(ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаВалОстаток, 0)) КАК СуммаВалОстаток, | РасчетыСПокупателямиОстатки.Документ.Дата КАК ДокументДата, | СУММА(ВЫРАЗИТЬ(РасчетыСПокупателямиОстатки.СуммаВалОстаток * КурсыВалютРасчетов.Курс * КурсыВалютДокумента.Кратность / (КурсыВалютДокумента.Курс * КурсыВалютРасчетов.Кратность) КАК ЧИСЛО(15, 2))) КАК СуммаВалДокумента, | КурсыВалютДокумента.Курс КАК КурсДенежныхСредств, | КурсыВалютДокумента.Кратность КАК КратностьДенежныхСредств, | КурсыВалютРасчетов.Курс КАК Курс, | КурсыВалютРасчетов.Кратность КАК Кратность, | ВременнаяТаблицаДоговорыАвтоЗачета.СуммаПлатежа КАК СуммаПлатежаАвто, | ВременнаяТаблицаДоговорыАвтоЗачета.Договор КАК ДоговорАвто |ИЗ | ВременнаяТаблицаДоговорыАвтоЗачета КАК ВременнаяТаблицаДоговорыАвтоЗачета | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | РасчетыСПокупателямиОстатки.Организация КАК Организация, | РасчетыСПокупателямиОстатки.Контрагент КАК Контрагент, | РасчетыСПокупателямиОстатки.Договор КАК Договор, | РасчетыСПокупателямиОстатки.Документ КАК Документ, | РасчетыСПокупателямиОстатки.Заказ КАК Заказ, | РасчетыСПокупателямиОстатки.ТипРасчетов КАК ТипРасчетов, | ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаОстаток, 0) КАК СуммаОстаток, | ЕСТЬNULL(РасчетыСПокупателямиОстатки.СуммаВалОстаток, 0) КАК СуммаВалОстаток | ИЗ | РегистрНакопления.РасчетыСПокупателями.Остатки( | , | Организация = &Организация | И Контрагент = &Контрагент | // ТекстДоговорОтбор | // ТекстДоговорАвтозаполнениеОтбор | И ТипРасчетов = ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг)) КАК РасчетыСПокупателямиОстатки | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ДвиженияДокументаРасчетыСПоставщиками.Организация, | ДвиженияДокументаРасчетыСПоставщиками.Контрагент, | ДвиженияДокументаРасчетыСПоставщиками.Договор, | ДвиженияДокументаРасчетыСПоставщиками.Документ, | ДвиженияДокументаРасчетыСПоставщиками.Заказ, | ДвиженияДокументаРасчетыСПоставщиками.ТипРасчетов, | ВЫБОР | КОГДА ДвиженияДокументаРасчетыСПоставщиками.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА -ЕСТЬNULL(ДвиженияДокументаРасчетыСПоставщиками.Сумма, 0) | ИНАЧЕ ЕСТЬNULL(ДвиженияДокументаРасчетыСПоставщиками.Сумма, 0) | КОНЕЦ, | ВЫБОР | КОГДА ДвиженияДокументаРасчетыСПоставщиками.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) | ТОГДА -ЕСТЬNULL(ДвиженияДокументаРасчетыСПоставщиками.СуммаВал, 0) | ИНАЧЕ ЕСТЬNULL(ДвиженияДокументаРасчетыСПоставщиками.СуммаВал, 0) | КОНЕЦ | ИЗ | РегистрНакопления.РасчетыСПокупателями КАК ДвиженияДокументаРасчетыСПоставщиками | ГДЕ | ДвиженияДокументаРасчетыСПоставщиками.Регистратор = &Ссылка | И ДвиженияДокументаРасчетыСПоставщиками.Период <= &Период | И ДвиженияДокументаРасчетыСПоставщиками.Организация = &Организация | И ДвиженияДокументаРасчетыСПоставщиками.Контрагент = &Контрагент | // ТекстДоговорДвиженийАвтозаполнениеОтбор | И ДвиженияДокументаРасчетыСПоставщиками.ТипРасчетов = ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг)) КАК РасчетыСПокупателямиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, Валюта = &Валюта) КАК КурсыВалютДокумента | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютРасчетов | ПО РасчетыСПокупателямиОстатки.Договор.ВалютаРасчетов = КурсыВалютРасчетов.Валюта | ПО ВременнаяТаблицаДоговорыАвтоЗачета.Договор = РасчетыСПокупателямиОстатки.Договор | |СГРУППИРОВАТЬ ПО | РасчетыСПокупателямиОстатки.Организация, | РасчетыСПокупателямиОстатки.Контрагент, | РасчетыСПокупателямиОстатки.Договор, | РасчетыСПокупателямиОстатки.Документ, | РасчетыСПокупателямиОстатки.Заказ, | РасчетыСПокупателямиОстатки.ТипРасчетов, | РасчетыСПокупателямиОстатки.Документ.Дата, | КурсыВалютДокумента.Курс, | КурсыВалютДокумента.Кратность, | КурсыВалютРасчетов.Курс, | КурсыВалютРасчетов.Кратность, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоДокументам | ТОГДА РасчетыСПокупателямиОстатки.Документ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА РасчетыСПокупателямиОстатки.Контрагент.ВестиРасчетыПоЗаказам | ТОГДА РасчетыСПокупателямиОстатки.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка) | КОНЕЦ, | ВременнаяТаблицаДоговорыАвтоЗачета.Договор, | ВременнаяТаблицаДоговорыАвтоЗачета.СуммаПлатежа | |УПОРЯДОЧИТЬ ПО | ДокументДата |ИТОГИ | СУММА(СуммаОстаток), | СУММА(СуммаВалОстаток), | СУММА(СуммаВалДокумента), | МАКСИМУМ(СуммаПлатежаАвто) |ПО | ДоговорАвто"; Запрос.УстановитьПараметр("Организация", Компания); Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("Период", Дата); Запрос.УстановитьПараметр("Валюта", ВалютаДенежныхСредств); Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("ДоговорыАвтоЗачетаДолгов", ДоговорыАвтоЗачетаДолгов.Выгрузить()); НуженОтборПоДоговорам = УправлениеНебольшойФирмойПовтИсп.ТребуетсяКонтрольДоговоровКонтрагентов(); СписокВидовДоговоров = Справочники.ДоговорыКонтрагентов.ПолучитьСписокВидовДоговораДляДокумента(Ссылка, ВидОперации); Если НуженОтборПоДоговорам И Контрагент.ВестиРасчетыПоДоговорам Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "// ТекстДоговорОтбор", "И Договор.ВидДоговора В (&СписокВидовДоговоров)"); Запрос.УстановитьПараметр("СписокВидовДоговоров", СписокВидовДоговоров); КонецЕсли; Если Контрагент.ВестиРасчетыПоДоговорам Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "// ТекстДоговорАвтозаполнениеОтбор", "И Договор В (&ТаблицаДоговоровАвтоЗачета)"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "// ТекстДоговорДвиженийАвтозаполнениеОтбор", "И ДвиженияДокументаРасчетыСПоставщиками.Договор В (&ТаблицаДоговоровАвтоЗачета)"); Запрос.УстановитьПараметр("ТаблицаДоговоровАвтоЗачета", ДоговорыАвтоЗачетаДолгов.ВыгрузитьКолонку("Договор")); КонецЕсли; РезультатЗапроса = Запрос.Выполнить(); РасшифровкаПлатежа.Очистить(); ВыборкаИтоги = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаИтоги.Следующий() Цикл ТекущийДоговор = ВыборкаИтоги.ДоговорАвто; СтруктураКурсВалютыДоговораПоУмолчанию = РегистрыСведений.КурсыВалют.ПолучитьПоследнее( Дата, Новый Структура("Валюта", ТекущийДоговор.ВалютаРасчетов) ); ВыборкаРезультатаЗапроса = ВыборкаИтоги.Выбрать(); СуммаОсталосьРаспределить = ВыборкаИтоги.СуммаПлатежаАвто; Пока СуммаОсталосьРаспределить > 0 Цикл Если ВыборкаРезультатаЗапроса.Следующий() Тогда Если ВыборкаРезультатаЗапроса.СуммаВалОстаток <= 0 Тогда Продолжить; КонецЕсли; НоваяСтрока = РасшифровкаПлатежа.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаРезультатаЗапроса); Если ВыборкаРезультатаЗапроса.СуммаВалДокумента <= СуммаОсталосьРаспределить Тогда // сумма остатка меньше или равна чем осталось распределить НоваяСтрока.СуммаРасчетов = ВыборкаРезультатаЗапроса.СуммаВалОстаток; НоваяСтрока.СуммаПлатежа = ВыборкаРезультатаЗапроса.СуммаВалДокумента; НоваяСтрока.СтавкаНДС = СтавкаНДСПоУмолчанию; НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаПлатежа - (НоваяСтрока.СуммаПлатежа) / ((СтавкаНДСПоУмолчанию.Ставка + 100) / 100); СуммаОсталосьРаспределить = СуммаОсталосьРаспределить - ВыборкаРезультатаЗапроса.СуммаВалДокумента; Иначе // сумма остатка больше чем нужно распределить НоваяСтрока.СуммаРасчетов = УправлениеНебольшойФирмойСервер.ПересчитатьИзВалютыВВалюту( СуммаОсталосьРаспределить, ВыборкаРезультатаЗапроса.КурсДенежныхСредств, ВыборкаРезультатаЗапроса.Курс, ВыборкаРезультатаЗапроса.КратностьДенежныхСредств, ВыборкаРезультатаЗапроса.Кратность ); НоваяСтрока.СуммаПлатежа = СуммаОсталосьРаспределить; НоваяСтрока.СтавкаНДС = СтавкаНДСПоУмолчанию; НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаПлатежа - (НоваяСтрока.СуммаПлатежа) / ((СтавкаНДСПоУмолчанию.Ставка + 100) / 100); СуммаОсталосьРаспределить = 0; КонецЕсли; Иначе НоваяСтрока = РасшифровкаПлатежа.Добавить(); НоваяСтрока.Договор = ТекущийДоговор; НоваяСтрока.Курс = ?( СтруктураКурсВалютыДоговораПоУмолчанию.Курс = 0, 1, СтруктураКурсВалютыДоговораПоУмолчанию.Курс ); НоваяСтрока.Кратность = ?( СтруктураКурсВалютыДоговораПоУмолчанию.Кратность = 0, 1, СтруктураКурсВалютыДоговораПоУмолчанию.Кратность ); НоваяСтрока.СуммаРасчетов = УправлениеНебольшойФирмойСервер.ПересчитатьИзВалютыВВалюту( СуммаОсталосьРаспределить, КурсВалютыДС, НоваяСтрока.Курс, КратностьВалютыДС, НоваяСтрока.Кратность ); НоваяСтрока.ПризнакАванса = Истина; НоваяСтрока.СуммаПлатежа = СуммаОсталосьРаспределить; НоваяСтрока.СтавкаНДС = СтавкаНДСПоУмолчанию; НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаПлатежа - (НоваяСтрока.СуммаПлатежа) / ((СтавкаНДСПоУмолчанию.Ставка + 100) / 100); СуммаОсталосьРаспределить = 0; КонецЕсли; КонецЦикла; КонецЦикла; // Пока ВыборкаИтоги.Следующий() Цикл Если РасшифровкаПлатежа.Количество() = 0 Тогда РасшифровкаПлатежа.Добавить(); РасшифровкаПлатежа[0].СуммаПлатежа = СуммаДокумента; КонецЕсли; СуммаПлатежа = РасшифровкаПлатежа.Итог("СуммаПлатежа"); КонецПроцедуры // ЗаполнитьРасшифровкуПлатежа() Процедура ЗаполнитьПоСтруктуре(ДанныеЗаполнения) Экспорт Если ДанныеЗаполнения.Свойство("Основание") Тогда Если ДанныеЗаполнения.Свойство("УчитыватьОстатки") И ТипЗнч(ДанныеЗаполнения.Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда ЗаполнитьПоЗаказуПокупателяСУчетомОстатковКОплате(ДанныеЗаполнения.Основание); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Основание) = Тип("ДокументСсылка.СчетНаОплату") Тогда ЗаполнитьПоСчетуНаОплату(ДанныеЗаполнения, ДанныеЗаполнения.НомерСтроки); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда ЗаполнитьПоЗаказуПокупателя(ДанныеЗаполнения, ДанныеЗаполнения.НомерСтроки); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Документ) = Тип("ДокументСсылка.ПоступлениеДСПлан") Тогда ЗаполнитьПоПоступлениюДСПлан(ДанныеЗаполнения.Документ, ДанныеЗаполнения.Сумма); КонецЕсли; ИначеЕсли ДанныеЗаполнения.Свойство("Документ") Тогда Если ТипЗнч(ДанныеЗаполнения.Документ) = Тип("ДокументСсылка.СчетНаОплату") Тогда ЗаполнитьПоСчетуНаОплату(ДанныеЗаполнения.Документ, Неопределено, ДанныеЗаполнения.Сумма); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Документ) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда ЗаполнитьПоЗаказуПокупателя(ДанныеЗаполнения.Документ, Неопределено, ДанныеЗаполнения.Сумма); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Документ) = Тип("ДокументСсылка.ПоступлениеДСПлан") Тогда ЗаполнитьПоПоступлениюДСПлан(ДанныеЗаполнения.Документ, ДанныеЗаполнения.Сумма); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Документ) = Тип("ДокументСсылка.ПеремещениеДСПлан") Тогда ЗаполнитьПоПеремещениюДСПлан(ДанныеЗаполнения.Документ, ДанныеЗаполнения.Сумма); ИначеЕсли ТипЗнч(ДанныеЗаполнения.Документ) = Тип("ДокументСсылка.НачисленияПоКредитамИЗаймам") Тогда ЗаполнитьПоНачисленияПоКредитамИЗаймам(ДанныеЗаполнения); КонецЕсли; КонецЕсли; КонецПроцедуры // Процедура заполнения документа на основании. // // Параметры: // ДанныеЗаполнения - Структура - Данные заполнения документа. // Процедура ЗаполнитьПоПоступлениюДСПлан(ДокументОснование, Сумма = Неопределено) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", ДокументОснование); Запрос.УстановитьПараметр("Дата", ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДата())); Если Сумма <> Неопределено Тогда Запрос.УстановитьПараметр("Сумма", Сумма); Запрос.Текст = "ВЫБРАТЬ | ПРЕДСТАВЛЕНИЕССЫЛКИ(&Ссылка) КАК Основание, | ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПокупателя) КАК ВидОперации, | &Ссылка КАК ДокументОснование, | ТаблицаДокумента.Организация КАК Организация, | ТаблицаДокумента.СтатьяДвиженияДенежныхСредств КАК Статья, | ТаблицаДокумента.Касса КАК Касса, | ТаблицаДокумента.ВалютаДокумента КАК ВалютаДенежныхСредств, | ТаблицаДокумента.Контрагент КАК Контрагент, | ТаблицаДокумента.Договор КАК Договор, | &Сумма КАК СуммаДокумента, | &Сумма КАК СуммаПлатежа, | ТаблицаДокумента.Организация.СтавкаНДСПоУмолчанию КАК СтавкаНДС, | ЕСТЬNULL(КурсыВалютРасчетов.Курс, 1) КАК Курс, | ЕСТЬNULL(КурсыВалютРасчетов.Кратность, 1) КАК Кратность, | ВЫРАЗИТЬ(&Сумма * ВЫБОР | КОГДА ТаблицаДокумента.ВалютаДокумента <> ТаблицаДокумента.Договор.ВалютаРасчетов | И КурсыВалютРасчетов.Курс <> 0 | И КурсыВалютДокумента.Кратность <> 0 | ТОГДА КурсыВалютДокумента.Курс * КурсыВалютРасчетов.Кратность / (ЕСТЬNULL(КурсыВалютРасчетов.Курс, 1) * ЕСТЬNULL(КурсыВалютДокумента.Кратность, 1)) | ИНАЧЕ 1 | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаРасчетов, | ВЫРАЗИТЬ(&Сумма * (1 - 1 / ((ЕСТЬNULL(ТаблицаДокумента.Организация.СтавкаНДСПоУмолчанию.Ставка, 0) + 100) / 100)) КАК ЧИСЛО(15, 2)) КАК СуммаНДС |ИЗ | Документ.ПоступлениеДСПлан КАК ТаблицаДокумента | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютРасчетов | ПО ТаблицаДокумента.Договор.ВалютаРасчетов = КурсыВалютРасчетов.Валюта | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютДокумента | ПО ТаблицаДокумента.ВалютаДокумента = КурсыВалютДокумента.Валюта |ГДЕ | ТаблицаДокумента.Ссылка = &Ссылка"; Иначе Запрос.Текст = "ВЫБРАТЬ | ПРЕДСТАВЛЕНИЕССЫЛКИ(&Ссылка) КАК Основание, | ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПокупателя) КАК ВидОперации, | &Ссылка КАК ДокументОснование, | ТаблицаДокумента.Организация КАК Организация, | ТаблицаДокумента.СтатьяДвиженияДенежныхСредств КАК Статья, | ТаблицаДокумента.Касса КАК Касса, | ТаблицаДокумента.ВалютаДокумента КАК ВалютаДенежныхСредств, | ТаблицаДокумента.Контрагент КАК Контрагент, | ТаблицаДокумента.Договор КАК Договор, | ТаблицаДокумента.СуммаДокумента КАК СуммаДокумента, | ТаблицаДокумента.СуммаДокумента КАК СуммаПлатежа, | ТаблицаДокумента.Организация.СтавкаНДСПоУмолчанию КАК СтавкаНДС, | ЕСТЬNULL(КурсыВалютРасчетов.Курс, 1) КАК Курс, | ЕСТЬNULL(КурсыВалютРасчетов.Кратность, 1) КАК Кратность, | ВЫРАЗИТЬ(ТаблицаДокумента.СуммаДокумента * ВЫБОР | КОГДА ТаблицаДокумента.ВалютаДокумента <> ТаблицаДокумента.Договор.ВалютаРасчетов | И КурсыВалютРасчетов.Курс <> 0 | И КурсыВалютДокумента.Кратность <> 0 | ТОГДА КурсыВалютДокумента.Курс * КурсыВалютРасчетов.Кратность / (ЕСТЬNULL(КурсыВалютРасчетов.Курс, 1) * ЕСТЬNULL(КурсыВалютДокумента.Кратность, 1)) | ИНАЧЕ 1 | КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаРасчетов, | ВЫРАЗИТЬ(ТаблицаДокумента.СуммаДокумента * (1 - 1 / ((ЕСТЬNULL(ТаблицаДокумента.Организация.СтавкаНДСПоУмолчанию.Ставка, 0) + 100) / 100)) КАК ЧИСЛО(15, 2)) КАК СуммаНДС |ИЗ | Документ.ПоступлениеДСПлан КАК ТаблицаДокумента | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютРасчетов | ПО ТаблицаДокумента.Договор.ВалютаРасчетов = КурсыВалютРасчетов.Валюта | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютДокумента | ПО ТаблицаДокумента.ВалютаДокумента = КурсыВалютДокумента.Валюта |ГДЕ | ТаблицаДокумента.Ссылка = &Ссылка"; КонецЕсли; РезультатЗапроса = Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка); НалогообложениеНДС = УправлениеНебольшойФирмойСервер.НалогообложениеНДС(Организация, , Дата); РасшифровкаПлатежа.Очистить(); НоваяСтрока = РасшифровкаПлатежа.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка); Если ПолучитьФункциональнуюОпцию("ОграничиватьДоступНаУровнеЗаписей") Тогда ЭтотОбъект.Касса = Справочники.Кассы.ПолучитьКассуСУчетомПравДоступаНаУровнеЗаписей(Выборка.Касса); КонецЕсли; НоваяСтрока.ПризнакАванса = Истина; НоваяСтрока.ДокументПланирования = ДокументОснование; Если ЗначениеЗаполнено(ДокументОснование.ДокументОснование) И ТипЗнч(ДокументОснование.ДокументОснование) = Тип("ДокументСсылка.ЗаказПокупателя") И Контрагент.ВестиРасчетыПоЗаказам Тогда НоваяСтрока.Заказ = ДокументОснование.ДокументОснование; КонецЕсли; КонецЕсли; КонецПроцедуры // ЗаполнитьПоПоступлениеДСПлан() // Процедура заполнения документа на основании. // // Параметры: // ДанныеЗаполнения - Структура - Данные заполнения документа. // Процедура ЗаполнитьПоПеремещениюДСПлан(ДокументОснование, Сумма = Неопределено) Экспорт Если ДокументОснование.СтатусУтвержденияПлатежа = Перечисления.СтатусыУтвержденияПлатежей.НеУтвержден Тогда ВызватьИсключение НСтр("ru = 'Нельзя ввести перемеще |
|||
1
KukenKvaken
01.10.18
✎
11:02
|
модуль менеджера
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда // Формирует таблицу значений, содержащую данные для проведения по регистру. // Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства". // Процедура СформироватьТаблицаДенежныеСредства(ДокументСсылкаПоступлениеВКассу, СтруктураДополнительныеСвойства) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаПоступлениеВКассу); Запрос.УстановитьПараметр("МоментВремени", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая)); Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата); Запрос.УстановитьПараметр("Организация", СтруктураДополнительныеСвойства.ДляПроведения.Организация); Запрос.УстановитьПараметр("ПоступлениеДенежныхСредств", НСтр("ru = 'Поступление денежных средств'")); Запрос.УстановитьПараметр("ПоступлениеРозничнойВыручки", НСтр("ru = 'Поступление розничной выручки'")); Запрос.УстановитьПараметр("КурсоваяРазница", НСтр("ru='Курсовая разница'")); Запрос.Текст = "ВЫБРАТЬ | 1 КАК НомерСтроки, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения, | ТаблицаДокумента.Дата КАК Дата, | ТаблицаДокумента.Организация КАК Организация, | ЗНАЧЕНИЕ(Перечисление.ТипыДенежныхСредств.Наличные) КАК ТипДенежныхСредств, | ТаблицаДокумента.Статья КАК Статья, | ТаблицаДокумента.Касса КАК БанковскийСчетКасса, | ВЫБОР | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПодотчетника) | ТОГДА ТаблицаДокумента.Подотчетник | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.Прочее) | ТОГДА ТаблицаДокумента.Корреспонденция | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ПрочиеРасчеты) | ТОГДА ТаблицаДокумента.Контрагент | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РасчетыПоКредитам) | ТОГДА ТаблицаДокумента.Контрагент | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ВозвратЗаймаСотрудником) | ТОГДА ТаблицаДокумента.Подотчетник | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ПокупкаВалюты) | ТОГДА ТаблицаДокумента.ВалютаДенежныхСредств | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручка) | ТОГДА ТаблицаДокумента.КассаККМ | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручкаСуммовойУчет) | ТОГДА ТаблицаДокумента.СтруктурнаяЕдиница | КОНЕЦ КАК Аналитика, | ТаблицаДокумента.ВалютаДенежныхСредств КАК Валюта, | СУММА(ТаблицаДокумента.Сумма) КАК Сумма, | СУММА(ТаблицаДокумента.СуммаВал) КАК СуммаВал, | СУММА(ТаблицаДокумента.Сумма) КАК СуммаДляОстатка, | СУММА(ТаблицаДокумента.СуммаВал) КАК СуммаВалДляОстатка, | ТаблицаДокумента.КассаСчетУчета КАК СчетУчета, | ВЫБОР | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручка) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручкаСуммовойУчет) | ТОГДА &ПоступлениеРозничнойВыручки | ИНАЧЕ &ПоступлениеДенежныхСредств | КОНЕЦ КАК СодержаниеПроводки |ПОМЕСТИТЬ ВременнаяТаблицаДенежныеСредства |ИЗ | ВременнаяТаблицаШапка КАК ТаблицаДокумента |ГДЕ | (ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПодотчетника) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.Прочее) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ПрочиеРасчеты) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РасчетыПоКредитам) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ВозвратЗаймаСотрудником) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ПокупкаВалюты) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручка) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручкаСуммовойУчет)) | |СГРУППИРОВАТЬ ПО | ТаблицаДокумента.Дата, | ТаблицаДокумента.Организация, | ТаблицаДокумента.Статья, | ТаблицаДокумента.Касса, | ТаблицаДокумента.ВалютаДенежныхСредств, | ТаблицаДокумента.КассаСчетУчета, | ВЫБОР | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручка) | ИЛИ ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручкаСуммовойУчет) | ТОГДА &ПоступлениеРозничнойВыручки | ИНАЧЕ &ПоступлениеДенежныхСредств | КОНЕЦ, | ВЫБОР | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПодотчетника) | ТОГДА ТаблицаДокумента.Подотчетник | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.Прочее) | ТОГДА ТаблицаДокумента.Корреспонденция | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ПрочиеРасчеты) | ТОГДА ТаблицаДокумента.Контрагент | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РасчетыПоКредитам) | ТОГДА ТаблицаДокумента.Контрагент | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ВозвратЗаймаСотрудником) | ТОГДА ТаблицаДокумента.Подотчетник | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ПокупкаВалюты) | ТОГДА ТаблицаДокумента.ВалютаДенежныхСредств | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручка) | ТОГДА ТаблицаДокумента.КассаККМ | КОГДА ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручкаСуммовойУчет) | ТОГДА ТаблицаДокумента.СтруктурнаяЕдиница | КОНЕЦ | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВременнаяТаблицаРасшифровкаПлатежа.НомерСтроки, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход), | ВременнаяТаблицаРасшифровкаПлатежа.Дата, | &Организация, | ЗНАЧЕНИЕ(Перечисление.ТипыДенежныхСредств.Наличные), | ВременнаяТаблицаРасшифровкаПлатежа.Статья, | ВременнаяТаблицаРасшифровкаПлатежа.Касса, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПокупателя) | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Контрагент | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПоставщика) | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Контрагент | КОНЕЦ, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаДенежныхСредств, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаУчета), | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаПлатежа), | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаУчета), | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаПлатежа), | ВременнаяТаблицаРасшифровкаПлатежа.БанковскийСчетКассаСчетУчета, | &ПоступлениеДенежныхСредств |ИЗ | ВременнаяТаблицаРасшифровкаПлатежа КАК ВременнаяТаблицаРасшифровкаПлатежа |ГДЕ | (ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПокупателя) | ИЛИ ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПоставщика)) | |СГРУППИРОВАТЬ ПО | ВременнаяТаблицаРасшифровкаПлатежа.НомерСтроки, | ВременнаяТаблицаРасшифровкаПлатежа.Дата, | ВременнаяТаблицаРасшифровкаПлатежа.Статья, | ВременнаяТаблицаРасшифровкаПлатежа.Касса, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаДенежныхСредств, | ВременнаяТаблицаРасшифровкаПлатежа.БанковскийСчетКассаСчетУчета, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПокупателя) | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Контрагент | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПоставщика) | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Контрагент | КОНЕЦ | |ИНДЕКСИРОВАТЬ ПО | Организация, | ТипДенежныхСредств, | БанковскийСчетКасса, | Валюта, | СчетУчета"; Запрос.Выполнить(); // Установка исключительной блокировки контролируемых остатков денежных средств. Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаДенежныеСредства.Организация КАК Организация, | ВременнаяТаблицаДенежныеСредства.ТипДенежныхСредств КАК ТипДенежныхСредств, | ВременнаяТаблицаДенежныеСредства.БанковскийСчетКасса КАК БанковскийСчетКасса, | ВременнаяТаблицаДенежныеСредства.Валюта КАК Валюта |ИЗ | ВременнаяТаблицаДенежныеСредства"; РезультатЗапроса = Запрос.Выполнить(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ДенежныеСредства"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = РезультатЗапроса; Для каждого КолонкаРезультатЗапроса Из РезультатЗапроса.Колонки Цикл ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя); КонецЦикла; Блокировка.Заблокировать(); НомерЗапроса = 0; Запрос.Текст = УправлениеНебольшойФирмойСервер.ПолучитьТекстЗапросаКурсовыеРазницыДенежныеСредства(Запрос.МенеджерВременныхТаблиц, НомерЗапроса); МассивРезультатов = Запрос.ВыполнитьПакет(); СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаДенежныеСредства", МассивРезультатов[НомерЗапроса].Выгрузить()); КонецПроцедуры // СформироватьТаблицаДенежныеСредства() // Формирует таблицу значений, содержащую данные для проведения по регистру. // Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства". // Процедура СформироватьТаблицаДенежныеСредстваВКассахККМ(ДокументСсылкаПоступлениеВКассу, СтруктураДополнительныеСвойства) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | 1 КАК НомерСтроки, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения, | ТаблицаДокумента.Дата КАК Дата, | ТаблицаДокумента.Организация КАК Организация, | ТаблицаДокумента.КассаККМ КАК КассаККМ, | ТаблицаДокумента.ВалютаДенежныхСредств КАК Валюта, | СУММА(ТаблицаДокумента.Сумма) КАК Сумма, | СУММА(ТаблицаДокумента.СуммаВал) КАК СуммаВал, | СУММА(ТаблицаДокумента.Сумма) КАК СуммаДляОстатка, | СУММА(ТаблицаДокумента.СуммаВал) КАК СуммаВалДляОстатка, | ТаблицаДокумента.КассаККМСчетУчета КАК СчетУчета, | &РасходДенежныхСредств КАК СодержаниеПроводки |ПОМЕСТИТЬ ВременнаяТаблицаДенежныеСредстваВКассахККМ |ИЗ | ВременнаяТаблицаШапка КАК ТаблицаДокумента |ГДЕ | ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.РозничнаяВыручка) | |СГРУППИРОВАТЬ ПО | ТаблицаДокумента.Дата, | ТаблицаДокумента.Организация, | ТаблицаДокумента.КассаККМ, | ТаблицаДокумента.ВалютаДенежныхСредств, | ТаблицаДокумента.КассаККМСчетУчета | |ИНДЕКСИРОВАТЬ ПО | Организация, | КассаККМ, | Валюта, | СчетУчета"; Запрос.УстановитьПараметр("Организация", СтруктураДополнительныеСвойства.ДляПроведения.Организация); Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаПоступлениеВКассу); Запрос.УстановитьПараметр("МоментВремени", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая)); Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата); Запрос.УстановитьПараметр("РасходДенежныхСредств", НСтр("ru = 'Расход денежных средств из кассы ККМ'")); Запрос.УстановитьПараметр("КурсоваяРазница", НСтр("ru='Курсовая разница'")); Запрос.Выполнить(); // Установка исключительной блокировки контролируемых остатков денежных средств. Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаДенежныеСредстваВКассахККМ.Организация КАК Организация, | ВременнаяТаблицаДенежныеСредстваВКассахККМ.КассаККМ КАК КассаККМ |ИЗ | ВременнаяТаблицаДенежныеСредстваВКассахККМ"; РезультатЗапроса = Запрос.Выполнить(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ДенежныеСредстваВКассахККМ"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = РезультатЗапроса; Для каждого КолонкаРезультатЗапроса Из РезультатЗапроса.Колонки Цикл ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя); КонецЦикла; Блокировка.Заблокировать(); НомерЗапроса = 0; Запрос.Текст = УправлениеНебольшойФирмойСервер.ПолучитьТекстЗапросаКурсовыеРазницыДенежныеСредстваВКассахККМ(Запрос.МенеджерВременныхТаблиц, НомерЗапроса); МассивРезультатов = Запрос.ВыполнитьПакет(); СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаДенежныеСредстваВКассахККМ", МассивРезультатов[НомерЗапроса].Выгрузить()); КонецПроцедуры // СформироватьТаблицаДенежныеСредстваВКассахККМ() // Формирует таблицу значений, содержащую данные для проведения по регистру. // Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства". // Процедура СформироватьТаблицаРасчетыСПодотчетниками(ДокументСсылкаПоступлениеВКассу, СтруктураДополнительныеСвойства) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаПоступлениеВКассу); Запрос.УстановитьПараметр("МоментВремени", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая)); Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата); Запрос.УстановитьПараметр("Организация", СтруктураДополнительныеСвойства.ДляПроведения.Организация); Запрос.УстановитьПараметр("ПогашениеДолгаПодотчетника", НСтр("ru = 'Погашение долга подотчетника'")); Запрос.УстановитьПараметр("КурсоваяРазница", НСтр("ru='Курсовая разница'")); Запрос.Текст = "ВЫБРАТЬ | 1 КАК НомерСтроки, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения, | ТаблицаДокумента.Касса КАК Касса, | ТаблицаДокумента.Документ КАК Документ, | ТаблицаДокумента.Подотчетник КАК Сотрудник, | ТаблицаДокумента.Дата КАК Дата, | ТаблицаДокумента.Организация КАК Организация, | ТаблицаДокумента.ВалютаДенежныхСредств КАК Валюта, | СУММА(ТаблицаДокумента.Сумма) КАК Сумма, | СУММА(ТаблицаДокумента.СуммаВал) КАК СуммаВал, | -СУММА(ТаблицаДокумента.Сумма) КАК СуммаДляОстатка, | -СУММА(ТаблицаДокумента.СуммаВал) КАК СуммаВалДляОстатка, | ТаблицаДокумента.ПодотчетникСчетРасчетовСПодотчетниками КАК СчетУчета, | &ПогашениеДолгаПодотчетника КАК СодержаниеПроводки |ПОМЕСТИТЬ ВременнаяТаблицаРасчетыСПодотчетниками |ИЗ | ВременнаяТаблицаШапка КАК ТаблицаДокумента |ГДЕ | ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПодотчетника) | |СГРУППИРОВАТЬ ПО | ТаблицаДокумента.Касса, | ТаблицаДокумента.Документ, | ТаблицаДокумента.Подотчетник, | ТаблицаДокумента.Дата, | ТаблицаДокумента.Организация, | ТаблицаДокумента.ВалютаДенежныхСредств, | ТаблицаДокумента.ПодотчетникСчетРасчетовСПодотчетниками | |ИНДЕКСИРОВАТЬ ПО | Организация, | Сотрудник, | Валюта, | Документ, | СчетУчета"; Запрос.Выполнить(); // Установка исключительной блокировки контролируемых остатков расчетов с подотчетными лицами. Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаРасчетыСПодотчетниками.Организация КАК Организация, | ВременнаяТаблицаРасчетыСПодотчетниками.Сотрудник КАК Сотрудник, | ВременнаяТаблицаРасчетыСПодотчетниками.Валюта КАК Валюта, | ВременнаяТаблицаРасчетыСПодотчетниками.Документ КАК Документ |ИЗ | ВременнаяТаблицаРасчетыСПодотчетниками"; РезультатЗапроса = Запрос.Выполнить(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.РасчетыСПодотчетниками"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = РезультатЗапроса; Для каждого КолонкаРезультатЗапроса Из РезультатЗапроса.Колонки Цикл ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя); КонецЦикла; Блокировка.Заблокировать(); НомерЗапроса = 0; Запрос.Текст = УправлениеНебольшойФирмойСервер.ПолучитьТекстЗапросаКурсовыеРазницыРасчетыСПодотчетниками(Запрос.МенеджерВременныхТаблиц, НомерЗапроса); МассивРезультатов = Запрос.ВыполнитьПакет(); СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаРасчетыСПодотчетниками", МассивРезультатов[НомерЗапроса].Выгрузить()); КонецПроцедуры // СформироватьТаблицаРасчетыСПодотчетниками() // Формирует таблицу значений, содержащую данные для проведения по регистру. // Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства". // Процедура СформироватьТаблицаРасчетыСПокупателями(ДокументСсылкаПоступлениеВКассу, СтруктураДополнительныеСвойства) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаПоступлениеВКассу); Запрос.УстановитьПараметр("МоментВремени", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая)); Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата); Запрос.УстановитьПараметр("Организация", СтруктураДополнительныеСвойства.ДляПроведения.Организация); Запрос.УстановитьПараметр("ВозникновениеАвансаПокупателя", "Возникновение аванса покупателя"); Запрос.УстановитьПараметр("ПогашениеОбязательствПокупателя", "Погашение обязательств покупателя"); Запрос.УстановитьПараметр("КурсоваяРазница", НСтр("ru='Курсовая разница'")); Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаРасшифровкаПлатежа.НомерСтроки КАК НомерСтроки, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоДокументам | ТОГДА ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА &Ссылка | ИНАЧЕ ВременнаяТаблицаРасшифровкаПлатежа.Документ | КОНЕЦ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ КАК Документ, | &Организация КАК Организация, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения, | ВременнаяТаблицаРасшифровкаПлатежа.Касса КАК Касса, | ВременнаяТаблицаРасшифровкаПлатежа.Контрагент КАК Контрагент, | ВременнаяТаблицаРасшифровкаПлатежа.Договор КАК Договор, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоЗаказам | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) | КОНЕЦ КАК Заказ, | ВременнаяТаблицаРасшифровкаПлатежа.Дата КАК Дата, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Аванс) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг) | КОНЕЦ КАК ТипРасчетов, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаПлатежа) КАК СуммаПлатежа, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаУчета) КАК Сумма, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаРасчетов) КАК СуммаВал, | -СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаУчета) КАК СуммаДляОстатка, | -СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаРасчетов) КАК СуммаВалДляОстатка, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаАвансовПокупателя | ИНАЧЕ ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаРасчетовСПокупателем | КОНЕЦ КАК СчетУчета, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаРасчетов КАК Валюта, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА &ВозникновениеАвансаПокупателя | ИНАЧЕ &ПогашениеОбязательствПокупателя | КОНЕЦ КАК СодержаниеПроводки |ПОМЕСТИТЬ ВременнаяТаблицаРасчетыСПокупателями |ИЗ | ВременнаяТаблицаРасшифровкаПлатежа КАК ВременнаяТаблицаРасшифровкаПлатежа |ГДЕ | ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПокупателя) | |СГРУППИРОВАТЬ ПО | ВременнаяТаблицаРасшифровкаПлатежа.НомерСтроки, | ВременнаяТаблицаРасшифровкаПлатежа.Касса, | ВременнаяТаблицаРасшифровкаПлатежа.Контрагент, | ВременнаяТаблицаРасшифровкаПлатежа.Договор, | ВременнаяТаблицаРасшифровкаПлатежа.Дата, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаРасчетов, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаДенежныхСредств, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоДокументам | ТОГДА ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА &Ссылка | ИНАЧЕ ВременнаяТаблицаРасшифровкаПлатежа.Документ | КОНЕЦ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоЗаказам | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Аванс) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг) | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаАвансовПокупателя | ИНАЧЕ ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаРасчетовСПокупателем | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА &ВозникновениеАвансаПокупателя | ИНАЧЕ &ПогашениеОбязательствПокупателя | КОНЕЦ | |ИНДЕКСИРОВАТЬ ПО | Организация, | Контрагент, | Договор, | Валюта, | Документ, | Заказ, | ТипРасчетов, | СчетУчета"; Запрос.Выполнить(); // Установка исключительной блокировки контролируемых остатков расчетов с контрагентами. Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаРасчетыСПокупателями.Организация КАК Организация, | ВременнаяТаблицаРасчетыСПокупателями.Контрагент КАК Контрагент, | ВременнаяТаблицаРасчетыСПокупателями.Договор КАК Договор, | ВременнаяТаблицаРасчетыСПокупателями.Документ КАК Документ, | ВременнаяТаблицаРасчетыСПокупателями.Заказ КАК Заказ, | ВременнаяТаблицаРасчетыСПокупателями.ТипРасчетов КАК ТипРасчетов |ИЗ | ВременнаяТаблицаРасчетыСПокупателями"; РезультатЗапроса = Запрос.Выполнить(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.РасчетыСПокупателями"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = РезультатЗапроса; Для каждого КолонкаРезультатЗапроса Из РезультатЗапроса.Колонки Цикл ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя); КонецЦикла; Блокировка.Заблокировать(); НомерЗапроса = 0; Запрос.Текст = УправлениеНебольшойФирмойСервер.ПолучитьТекстЗапросаКурсовыеРазницыРасчетыСПокупателями(Запрос.МенеджерВременныхТаблиц, Ложь, НомерЗапроса); МассивРезультатов = Запрос.ВыполнитьПакет(); СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаРасчетыСПокупателями", МассивРезультатов[НомерЗапроса].Выгрузить()); КонецПроцедуры // СформироватьТаблицаРасчетыСПокупателями() // Формирует таблицу значений, содержащую данные для проведения по регистру. // Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства". // Процедура СформироватьТаблицаРасчетыСПоставщиками(ДокументСсылкаПоступлениеВКассу, СтруктураДополнительныеСвойства) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаПоступлениеВКассу); Запрос.УстановитьПараметр("МоментВремени", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая)); Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата); Запрос.УстановитьПараметр("Организация", СтруктураДополнительныеСвойства.ДляПроведения.Организация); Запрос.УстановитьПараметр("ПогашениеАвансаПоставщику", НСтр("ru = 'Погашение аванса поставщику'")); Запрос.УстановитьПараметр("ВозникновениеОбязательствПередПоставщиком", НСтр("ru = 'Возникновение обязательств перед поставщиком'")); Запрос.УстановитьПараметр("КурсоваяРазница", НСтр("ru='Курсовая разница'")); Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаРасшифровкаПлатежа.НомерСтроки КАК НомерСтроки, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоДокументам | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Документ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ КАК Документ, | &Организация КАК Организация, | ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения, | ВременнаяТаблицаРасшифровкаПлатежа.Касса КАК Касса, | ВременнаяТаблицаРасшифровкаПлатежа.Контрагент КАК Контрагент, | ВременнаяТаблицаРасшифровкаПлатежа.Договор КАК Договор, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоЗаказам | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка) | КОНЕЦ КАК Заказ, | ВременнаяТаблицаРасшифровкаПлатежа.Дата КАК Дата, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Аванс) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг) | КОНЕЦ КАК ТипРасчетов, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаПлатежа) КАК СуммаПлатежа, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаУчета) КАК Сумма, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаРасчетов) КАК СуммаВал, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаУчета) КАК СуммаДляОстатка, | СУММА(ВременнаяТаблицаРасшифровкаПлатежа.СуммаРасчетов) КАК СуммаВалДляОстатка, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаАвансовПоставщику | ИНАЧЕ ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаРасчетовСПоставщиком | КОНЕЦ КАК СчетУчета, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаРасчетов КАК Валюта, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА &ПогашениеАвансаПоставщику | ИНАЧЕ &ВозникновениеОбязательствПередПоставщиком | КОНЕЦ КАК СодержаниеПроводки |ПОМЕСТИТЬ ВременнаяТаблицаРасчетыСПоставщиками |ИЗ | ВременнаяТаблицаРасшифровкаПлатежа КАК ВременнаяТаблицаРасшифровкаПлатежа |ГДЕ | ВременнаяТаблицаРасшифровкаПлатежа.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеВКассу.ОтПоставщика) | |СГРУППИРОВАТЬ ПО | ВременнаяТаблицаРасшифровкаПлатежа.НомерСтроки, | ВременнаяТаблицаРасшифровкаПлатежа.Касса, | ВременнаяТаблицаРасшифровкаПлатежа.Контрагент, | ВременнаяТаблицаРасшифровкаПлатежа.Договор, | ВременнаяТаблицаРасшифровкаПлатежа.Дата, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаРасчетов, | ВременнаяТаблицаРасшифровкаПлатежа.ВалютаДенежныхСредств, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоДокументам | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Документ | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ВестиРасчетыПоЗаказам | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.Заказ | ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка) | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Аванс) | ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг) | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаАвансовПоставщику | ИНАЧЕ ВременнаяТаблицаРасшифровкаПлатежа.СчетУчетаРасчетовСПоставщиком | КОНЕЦ, | ВЫБОР | КОГДА ВременнаяТаблицаРасшифровкаПлатежа.ПризнакАванса | ТОГДА &ПогашениеАвансаПоставщику | ИНАЧЕ &ВозникновениеОбязательствПередПоставщиком | КОНЕЦ | |ИНДЕКСИРОВАТЬ ПО | Организация, | Контрагент, | Договор, | Валюта, | Документ, | Заказ, | ТипРасчетов, | СчетУчета"; Запрос.Выполнить(); // Установка исключительной блокировки контролируемых остатков расчетов с контрагентами. Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблицаРасчетыСПоставщиками.Организация КАК Организация, | ВременнаяТаблицаРасчетыСПоставщиками.Контрагент КАК Контрагент, | ВременнаяТаблицаРасчетыСПоставщиками.Договор КАК Договор, | ВременнаяТаблицаРасчетыСПоставщиками.Документ КАК Документ, | ВременнаяТаблицаРасчетыСПоставщиками.Заказ КАК Заказ, | ВременнаяТаблицаРасчетыСПоставщиками.ТипРасчетов КАК ТипРасчетов |ИЗ | ВременнаяТаблицаРасчетыСПоставщиками"; РезультатЗапроса = Запрос.Выполнить(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.РасчетыСПоставщиками"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = РезультатЗапроса; Для каждого КолонкаРезультатЗапроса Из РезультатЗапроса.Колонки Цикл ЭлементБлоки |
|||
2
Ёпрст
01.10.18
✎
11:31
|
(0)
Смотри в сторону ОбработкаПолученияПредставления + ОбработкаПолученияПолейПредставления |
|||
3
Ёпрст
01.10.18
✎
11:33
|
Хотя, в таком случае, во всех местах будет такое представление ..
Тогда, только свой текст на гиперрсылке делать |
|||
4
KukenKvaken
01.10.18
✎
11:40
|
(2) (3) Да мне в принципе пофиг на все места. там печатается только договор но у него свои тараканы и ПКО если оплата наличкой. при безнале загружается из клиент банка.
|
|||
5
Ёпрст
01.10.18
✎
11:41
|
(4) ну , тогда в модуле менеджера этого документа пропиши 2 эти процы.. будет тебе как хочешь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |