Вывести в Товарном чеке имя авторизованного пользователя базы-данных вместо кассира

1. user1235550 08.07.19 16:37 Сейчас в теме
Здравствуйте, возник такой вопрос. Скажите как можно вывести в печатную форму Вместо ФИО кассира - имя пользователя авторизованного в базе-данных.
Что можно прописать в модуле? Заранее спасибо.
Прикрепленные файлы:
Найденные решения
8. kuzyaa 2 10.07.19 16:07 Сейчас в теме
(7)
""ОбластьМакета = Макет.ПолучитьОбласть("Подписи|ОсновныеДанные"); // Или как она у вас называется, Ищите где заполняется эта область 
   //Заполнение области             
 ОбластьМакета.Параметры.ВвыводимоеИмя = ПараметрыСеанса.ТекущийПользователь; // и туда вставляете
 ТабличныйДокумент.Вывести(ОбластьМакета);"" 



И на скрине вы вставили не в ту область если через структуру хотели...

""СтруктураЗаполненияСекции.Вставить("ВыводимоеИмя", ПараметрыСеанса.ТекущийПользователь); // Добавляете значение параметра в структуру
ОбластьМакета = Макет.ПолучитьОбласть("Подписи|ОсновныеДанные"); //Получаете область макета

Областьмакета.Параметры.Заполнить(СтруктураЗаполненияСекции); // Тогда и заполняйте данными из структуры в которую добавили значение"" 
user1235550; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. oldcopy 174 08.07.19 17:17 Сейчас в теме
ВыводимоеИмя = ПараметрыСеанса.ТекущийПользователь
3. user1235550 08.07.19 17:40 Сейчас в теме
Не выводится, может неправильно что-то делаю?) Код добавлять в модуль менеджера?

p.s. с 1с просто на "вы" =)
Прикрепленные файлы:
4. _Enot_ 9 08.07.19 17:44 Сейчас в теме
(3)а форма точно та? Ну а вдруг
5. user1235550 08.07.19 17:49 Сейчас в теме
Да, если меняю переменную для РасшифровкаПодписиКассира то в печати тоже меняется.
[1C-CODE]#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Контрагент)";

КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

#КонецОбласти

#КонецОбласти

#Область Проведение

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасы(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

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

Запрос.УстановитьПараметр("ОприходованиеЗапасов", НСтр("ru = 'Оприходование запасов'"));
Запрос.УстановитьПараметр("СписаниеЗапасов", НСтр("ru = 'Списание запасов'"));

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаЗапасы", РезультатЗапроса.Выгрузить());

Если ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПродажаПокупателю
ИЛИ ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаНаКомиссию
ИЛИ ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку
ИЛИ ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаНаОтветхранение Тогда

СформироватьТаблицаЗапасыПродажа(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства);

ИначеЕсли ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ВозвратПоставщику Тогда

СформироватьТаблицаЗапасыВозврат(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства);

КонецЕсли;

КонецПроцедуры // СформироватьТаблицаЗапасы()

Процедура СформироватьТаблицаЗапасыВРазрезеГТД(СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;

Запрос.Текст =
"ВЫБРАТЬ
| МИНИМУМ(ТаблицаЗапасыНаСкладах.НомерСтроки) КАК НомерСтроки
| ,ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения
| ,ТаблицаЗапасыНаСкладах.Период КАК Период
| ,ТаблицаЗапасыНаСкладах.Организация КАК Организация
| ,ТаблицаЗапасыНаСкладах.Номенклатура КАК Номенклатура
| ,ТаблицаЗапасыНаСкладах.Характеристика КАК Характеристика
| ,ТаблицаЗапасыНаСкладах.Партия КАК Партия
| ,ТаблицаЗапасыНаСкладах.НомерГТД КАК НомерГТД
| ,ТаблицаЗапасыНаСкладах.СтранаПроисхождения КАК СтранаПроисхождения
| ,СУММА(ТаблицаЗапасыНаСкладах.Количество) КАК Количество
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасыНаСкладах
|ГДЕ
| ТаблицаЗапасыНаСкладах.СтранаПроисхождения <> Значение(Справочник.СтраныМира.Россия)
| И ТаблицаЗапасыНаСкладах.СтранаПроисхождения <> Значение(Справочник.СтраныМира.ПустаяССылка)
| И ТаблицаЗапасыНаСкладах.НомерГТД <> Значение(Справочник.НомераГТД.ПустаяССылка)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗапасыНаСкладах.Период
| ,ТаблицаЗапасыНаСкладах.Организация
| ,ТаблицаЗапасыНаСкладах.Номенклатура
| ,ТаблицаЗапасыНаСкладах.Характеристика
| ,ТаблицаЗапасыНаСкладах.Партия
| ,ТаблицаЗапасыНаСкладах.НомерГТД
| ,ТаблицаЗапасыНаСкладах.СтранаПроисхождения";

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаЗапасыВРазрезеГТД", РезультатЗапроса.Выгрузить());

КонецПроцедуры

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасыПродажа(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;

// Установка исключительной блокировки контролируемых остатков запасов.
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаЗапасы.Организация КАК Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета КАК СчетУчета,
| ТаблицаЗапасы.Номенклатура КАК Номенклатура,
| ТаблицаЗапасы.Характеристика КАК Характеристика,
| ТаблицаЗапасы.Партия КАК Партия,
| ТаблицаЗапасы.ЗаказПокупателя КАК ЗаказПокупателя
|ИЗ
| (ВЫБРАТЬ
| ТаблицаЗапасы.Организация КАК Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета КАК СчетУчета,
| ТаблицаЗапасы.Номенклатура КАК Номенклатура,
| ТаблицаЗапасы.Характеристика КАК Характеристика,
| ТаблицаЗапасы.Партия КАК Партия,
| ВЫБОР
| КОГДА ТаблицаЗапасы.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаЗапасы.Заказ
| КОГДА ТаблицаЗапасы.Заказ ССЫЛКА Документ.ЗаказПоставщику
| И ТаблицаЗапасы.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку)
| ТОГДА ТаблицаЗапасы.Заказ.ЗаказПокупателя
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ КАК ЗаказПокупателя
| ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы
| ГДЕ
| ТаблицаЗапасы.Заказ <> НЕОПРЕДЕЛЕНО
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТаблицаЗапасы.Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета,
| ТаблицаЗапасы.Номенклатура,
| ТаблицаЗапасы.Характеристика,
| ТаблицаЗапасы.Партия,
| ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы) КАК ТаблицаЗапасы
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗапасы.Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета,
| ТаблицаЗапасы.Номенклатура,
| ТаблицаЗапасы.Характеристика,
| ТаблицаЗапасы.Партия,
| ТаблицаЗапасы.ЗаказПокупателя";

РезультатЗапроса = Запрос.Выполнить();

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Запасы");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;

Для каждого КолонкаРезультатЗапроса из РезультатЗапроса.Колонки Цикл
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя);
КонецЦикла;
Блокировка.Заблокировать();

// Получение остатков запасов по стоимости.
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаЗапасы.Организация КАК Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета КАК СчетУчета,
| ТаблицаЗапасы.Номенклатура КАК Номенклатура,
| ТаблицаЗапасы.Характеристика КАК Характеристика,
| ТаблицаЗапасы.Партия КАК Партия,
| ВЫБОР
| КОГДА ТаблицаЗапасы.Заказ <> НЕОПРЕДЕЛЕНО
| ТОГДА ВЫБОР
| КОГДА ТаблицаЗапасы.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаЗапасы.Заказ
| КОГДА ТаблицаЗапасы.Заказ ССЫЛКА Документ.ЗаказПоставщику
| И ТаблицаЗапасы.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку)
| ТОГДА ТаблицаЗапасы.Заказ.ЗаказПокупателя
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ КАК ЗаказПокупателя
|ПОМЕСТИТЬ втТаблицаЗапасы
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы
|ГДЕ
| ВЫБОР
| КОГДА ТаблицаЗапасы.Заказ <> НЕОПРЕДЕЛЕНО
| ТОГДА ВЫБОР
| КОГДА ТаблицаЗапасы.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаЗапасы.Заказ
| КОГДА ТаблицаЗапасы.Заказ ССЫЛКА Документ.ЗаказПоставщику
| И ТаблицаЗапасы.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку)
| ТОГДА ТаблицаЗапасы.Заказ.ЗаказПокупателя
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ТаблицаЗапасы.Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета,
| ТаблицаЗапасы.Номенклатура,
| ТаблицаЗапасы.Характеристика,
| ТаблицаЗапасы.Партия,
| ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
| ЗапасыОстатки.Организация КАК Организация,
| ЗапасыОстатки.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ЗапасыОстатки.СчетУчета КАК СчетУчета,
| ЗапасыОстатки.Номенклатура КАК Номенклатура,
| ЗапасыОстатки.Характеристика КАК Характеристика,
| ЗапасыОстатки.Партия КАК Партия,
| ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
| СУММА(ЗапасыОстатки.КоличествоОстаток) КАК КоличествоОстаток,
| СУММА(ЗапасыОстатки.СуммаОстаток) КАК СуммаОстаток
|ИЗ
| РегистрНакопления.Запасы.Остатки(&МоментКонтроля, ) КАК ЗапасыОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ втТаблицаЗапасы КАК втТаблицаЗапасы
| ПО ЗапасыОстатки.Организация = втТаблицаЗапасы.Организация
| И ЗапасыОстатки.СтруктурнаяЕдиница = втТаблицаЗапасы.СтруктурнаяЕдиница
| И ЗапасыОстатки.СчетУчета = втТаблицаЗапасы.СчетУчета
| И ЗапасыОстатки.Номенклатура = втТаблицаЗапасы.Номенклатура
| И ЗапасыОстатки.Характеристика = втТаблицаЗапасы.Характеристика
| И ЗапасыОстатки.Партия = втТаблицаЗапасы.Партия
| И ЗапасыОстатки.ЗаказПокупателя = втТаблицаЗапасы.ЗаказПокупателя
|
|СГРУППИРОВАТЬ ПО
| ЗапасыОстатки.СчетУчета,
| ЗапасыОстатки.СтруктурнаяЕдиница,
| ЗапасыОстатки.Организация,
| ЗапасыОстатки.ЗаказПокупателя,
| ЗапасыОстатки.Партия,
| ЗапасыОстатки.Характеристика,
| ЗапасыОстатки.Номенклатура";

Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаРасходнаяНакладная);
Запрос.УстановитьПараметр("МоментКонтроля", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Исключая));

РезультатЗапроса = Запрос.Выполнить();

ТаблицаЗапасыОстатки = РезультатЗапроса.Выгрузить();
ТаблицаЗапасыОстатки.Индексы.Добавить("Организация,СтруктурнаяЕдиница,СчетУчета,Номенклатура,Характеристика,Партия,ЗаказПокупателя");

Передача = (ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаНаКомиссию
ИЛИ ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку
ИЛИ ДокументСсылкаРасходнаяНакладная.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаНаОтветхранение);

ВременнаяТаблицаЗапасы = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы.СкопироватьКолонки();

Для н = 0 По СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы.Количество() - 1 Цикл

СтрокаТаблицаЗапасы = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы[н];

СтруктураДляПоиска = Новый Структура;
СтруктураДляПоиска.Вставить("Организация", СтрокаТаблицаЗапасы.Организация);
СтруктураДляПоиска.Вставить("СтруктурнаяЕдиница", СтрокаТаблицаЗапасы.СтруктурнаяЕдиница);
СтруктураДляПоиска.Вставить("СчетУчета", СтрокаТаблицаЗапасы.СчетУчета);
СтруктураДляПоиска.Вставить("Номенклатура", СтрокаТаблицаЗапасы.Номенклатура);
СтруктураДляПоиска.Вставить("Характеристика", СтрокаТаблицаЗапасы.Характеристика);
СтруктураДляПоиска.Вставить("Партия", СтрокаТаблицаЗапасы.Партия);

КоличествоТребуетсяРезерв = ?(ЗначениеЗаполнено(СтрокаТаблицаЗапасы.Резерв), СтрокаТаблицаЗапасы.Резерв, 0);
КоличествоТребуетсяСвободныйОстаток = ?(ЗначениеЗаполнено(СтрокаТаблицаЗапасы.Количество), СтрокаТаблицаЗапасы.Количество, 0);

Если КоличествоТребуетсяРезерв > 0 Тогда

КоличествоТребуетсяСвободныйОстаток = КоличествоТребуетсяСвободныйОстаток - КоличествоТребуетсяРезерв;

СтруктураДляПоиска.Вставить("ЗаказПокупателя", СтрокаТаблицаЗапасы.ЗаказПокупателя);

МассивСтрокОстатков = ТаблицаЗапасыОстатки.НайтиСтроки(СтруктураДляПоиска);

КоличествоОстаток = 0;
СуммаОстаток = 0;

Если МассивСтрокОстатков.Количество() > 0 Тогда
КоличествоОстаток = МассивСтрокОстатков[0].КоличествоОстаток;
СуммаОстаток = МассивСтрокОстатков[0].СуммаОстаток;
КонецЕсли;

Если КоличествоОстаток > 0 И КоличествоОстаток > КоличествоТребуетсяРезерв Тогда

СуммаКСписанию = Окр(СуммаОстаток * КоличествоТребуетсяРезерв / КоличествоОстаток , 2, 1);

МассивСтрокОстатков[0].КоличествоОстаток = МассивСтрокОстатков[0].КоличествоОстаток - КоличествоТребуетсяРезерв;
МассивСтрокОстатков[0].СуммаОстаток = МассивСтрокОстатков[0].СуммаОстаток - СуммаКСписанию;

ИначеЕсли КоличествоОстаток = КоличествоТребуетсяРезерв Тогда

СуммаКСписанию = СуммаОстаток;

МассивСтрокОстатков[0].КоличествоОстаток = 0;
МассивСтрокОстатков[0].СуммаОстаток = 0;

Иначе
СуммаКСписанию = 0;
КонецЕсли;

// Расход. Запасы.
СтрокаТаблицыРасход = ВременнаяТаблицаЗапасы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыРасход, СтрокаТаблицаЗапасы);

СтрокаТаблицыРасход.Сумма = СуммаКСписанию;
СтрокаТаблицыРасход.Количество = КоличествоТребуетсяРезерв;

// Сформируем проводки.
Если Окр(СуммаКСписанию, 2, 1) <> 0 Тогда
СтрокаТаблицаУправленческий = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаУправленческий.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицаУправленческий, СтрокаТаблицаЗапасы);
СтрокаТаблицаУправленческий.Сумма = СуммаКСписанию;
КонецЕсли;

Если Передача Тогда

// Приход.
СтрокаТаблицыПриход = ВременнаяТаблицаЗапасы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриход, СтрокаТаблицаЗапасы,,"СтруктурнаяЕдиница, КоррСтруктурнаяЕдиница");

СтрокаТаблицыПриход.ВидДвижения = ВидДвиженияНакопления.Приход;


СтрокаТаблицыПриход.Организация = СтрокаТаблицаЗапасы.КоррОрганизация;
СтрокаТаблицыПриход.СтруктурнаяЕдиница = СтрокаТаблицаЗапасы.КоррСтруктурнаяЕдиница;
СтрокаТаблицыПриход.СчетУчета = СтрокаТаблицаЗапасы.КоррСчетУчета;
СтрокаТаблицыПриход.Номенклатура = СтрокаТаблицаЗапасы.КоррНоменклатура;
СтрокаТаблицыПриход.Характеристика = СтрокаТаблицаЗапасы.КоррХарактеристика;
СтрокаТаблицыПриход.Партия = СтрокаТаблицаЗапасы.КоррПартия;

СтрокаТаблицыПриход.КоррОрганизация = СтрокаТаблицаЗапасы.Организация;
СтрокаТаблицыПриход.КоррСтруктурнаяЕдиница = СтрокаТаблицаЗапасы.СтруктурнаяЕдиница;
СтрокаТаблицыПриход.КоррСчетУчета = СтрокаТаблицаЗапасы.СчетУчета;
СтрокаТаблицыПриход.КоррНоменклатура = СтрокаТаблицаЗапасы.Номенклатура;
СтрокаТаблицыПриход.КоррХарактеристика = СтрокаТаблицаЗапасы.Характеристика;
СтрокаТаблицыПриход.КоррПартия = СтрокаТаблицаЗапасы.Партия;

СтрокаТаблицыПриход.Сумма = СуммаКСписанию;
СтрокаТаблицыПриход.Количество = КоличествоТребуетсяРезерв;

СтрокаТаблицыПриход.СодержаниеПроводки = НСтр("ru='Передача запасов'");

СтрокаТаблицыПриход.СчетУчета = СтрокаТаблицаЗапасы.КоррСчетУчета;

Иначе

Если СтрокаТаблицаЗапасы.ТоварыНаКомиссии Тогда

ИначеЕсли Окр(СуммаКСписанию, 2, 1) <> 0 Тогда

// Продвигаем доходы и расходы.
СтрокаДоходыИРасходы = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаДоходыИРасходы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДоходыИРасходы, СтрокаТаблицаЗапасы);

СтрокаДоходыИРасходы.СтруктурнаяЕдиница = СтрокаТаблицаЗапасы.ПодразделениеПродажи;
Если СтрокаТаблицаЗапасы.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.ПодарочныйСертификат Тогда
СтрокаДоходыИРасходы.СчетУчета = СтрокаТаблицаЗапасы.СчетДт;
Иначе
СтрокаДоходыИРасходы.СчетУчета = СтрокаТаблицаЗапасы.СчетУчетаСебестоимость;
КонецЕсли;
СтрокаДоходыИРасходы.СуммаДоходов = 0;
СтрокаДоходыИРасходы.СуммаРасходов = СуммаКСписанию;
СтрокаДоходыИРасходы.Сумма = СуммаКСписанию;

СтрокаДоходыИРасходы.СодержаниеПроводки = НСтр("ru='Отражение расходов'");

КонецЕсли;

Если Окр(СуммаКСписанию, 2, 1) <> 0 Тогда

// Продвигаем себестоимость продаж.
Если Не СтрокаТаблицаЗапасы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.ПодарочныйСертификат") Тогда
СтрокаПродажи = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаПродажи.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаПродажи, СтрокаТаблицаЗапасы);
СтрокаПродажи.Количество = 0;
СтрокаПродажи.Сумма = 0;
СтрокаПродажи.СуммаНДС = 0;
СтрокаПродажи.Себестоимость = СуммаКСписанию;
КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЕсли;

Если КоличествоТребуетсяСвободныйОстаток > 0 Тогда

СтруктураДляПоиска.Вставить("ЗаказПокупателя", Документы.ЗаказПокупателя.ПустаяСсылка());

МассивСтрокОстатков = ТаблицаЗапасыОстатки.НайтиСтроки(СтруктураДляПоиска);

КоличествоОстаток = 0;
СуммаОстаток = 0;

Если МассивСтрокОстатков.Количество() > 0 Тогда
КоличествоОстаток = МассивСтрокОстатков[0].КоличествоОстаток;
СуммаОстаток = МассивСтрокОстатков[0].СуммаОстаток;
КонецЕсли;

Если КоличествоОстаток > 0 И КоличествоОстаток > КоличествоТребуетсяСвободныйОстаток Тогда

СуммаКСписанию = Окр(СуммаОстаток * КоличествоТребуетсяСвободныйОстаток / КоличествоОстаток , 2, 1);

МассивСтрокОстатков[0].КоличествоОстаток = МассивСтрокОстатков[0].КоличествоОстаток - КоличествоТребуетсяСвободныйОстаток;
МассивСтрокОстатков[0].СуммаОстаток = МассивСтрокОстатков[0].СуммаОстаток - СуммаКСписанию;

ИначеЕсли КоличествоОстаток = КоличествоТребуетсяСвободныйОстаток Тогда

СуммаКСписанию = СуммаОстаток;

МассивСтрокОстатков[0].КоличествоОстаток = 0;
МассивСтрокОстатков[0].СуммаОстаток = 0;

Иначе
СуммаКСписанию = 0;
КонецЕсли;

// Расход. Запасы.
СтрокаТаблицыРасход = ВременнаяТаблицаЗапасы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыРасход, СтрокаТаблицаЗапасы);

СтрокаТаблицыРасход.Сумма = СуммаКСписанию;
СтрокаТаблицыРасход.Количество = КоличествоТребуетсяСвободныйОстаток;
СтрокаТаблицыРасход.ЗаказПокупателя = Документы.ЗаказПокупателя.ПустаяСсылка();

// Сформируем проводки.
Если Окр(СуммаКСписанию, 2, 1) <> 0 Тогда
СтрокаТаблицаУправленческий = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаУправленческий.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицаУправленческий, СтрокаТаблицаЗапасы);
СтрокаТаблицаУправленческий.Сумма = СуммаКСписанию;
КонецЕсли;

Если Передача Тогда

// Приход.
СтрокаТаблицыПриход = ВременнаяТаблицаЗапасы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыПриход, СтрокаТаблицаЗапасы,,"СтруктурнаяЕдиница, КоррСтруктурнаяЕдиница");

СтрокаТаблицыПриход.ВидДвижения = ВидДвиженияНакопления.Приход;

СтрокаТаблицыПриход.Организация = СтрокаТаблицаЗапасы.КоррОрганизация;
СтрокаТаблицыПриход.СтруктурнаяЕдиница = СтрокаТаблицаЗапасы.КоррСтруктурнаяЕдиница;
СтрокаТаблицыПриход.СчетУчета = СтрокаТаблицаЗапасы.КоррСчетУчета;
СтрокаТаблицыПриход.Номенклатура = СтрокаТаблицаЗапасы.КоррНоменклатура;
СтрокаТаблицыПриход.Характеристика = СтрокаТаблицаЗапасы.КоррХарактеристика;
СтрокаТаблицыПриход.Партия = СтрокаТаблицаЗапасы.КоррПартия;

СтрокаТаблицыПриход.ЗаказПокупателя = СтрокаТаблицаЗапасы.КоррЗаказПокупателя;

СтрокаТаблицыПриход.КоррОрганизация = СтрокаТаблицаЗапасы.Организация;
СтрокаТаблицыПриход.КоррСтруктурнаяЕдиница = СтрокаТаблицаЗапасы.СтруктурнаяЕдиница;
СтрокаТаблицыПриход.КоррСчетУчета = СтрокаТаблицаЗапасы.СчетУчета;
СтрокаТаблицыПриход.КоррНоменклатура = СтрокаТаблицаЗапасы.Номенклатура;
СтрокаТаблицыПриход.КоррХарактеристика = СтрокаТаблицаЗапасы.Характеристика;
СтрокаТаблицыПриход.КоррПартия = СтрокаТаблицаЗапасы.Партия;

СтрокаТаблицыПриход.КоррЗаказПокупателя = Документы.ЗаказПокупателя.ПустаяСсылка();

СтрокаТаблицыПриход.Сумма = СуммаКСписанию;
СтрокаТаблицыПриход.Количество = КоличествоТребуетсяСвободныйОстаток;

СтрокаТаблицыПриход.СодержаниеПроводки = НСтр("ru='Передача запасов'");

СтрокаТаблицыПриход.СчетУчета = СтрокаТаблицаЗапасы.КоррСчетУчета;

Иначе

Если СтрокаТаблицаЗапасы.ТоварыНаКомиссии Тогда

ИначеЕсли Окр(СуммаКСписанию, 2, 1) <> 0 Тогда

// Продвигаем доходы и расходы.
СтрокаДоходыИРасходы = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаДоходыИРасходы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДоходыИРасходы, СтрокаТаблицаЗапасы);

СтрокаДоходыИРасходы.СтруктурнаяЕдиница = СтрокаТаблицаЗапасы.ПодразделениеПродажи;
Если СтрокаТаблицаЗапасы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.ПодарочныйСертификат") Тогда
СтрокаДоходыИРасходы.СчетУчета = СтрокаТаблицаЗапасы.СчетДт;
Иначе
СтрокаДоходыИРасходы.СчетУчета = СтрокаТаблицаЗапасы.СчетУчетаСебестоимость;
КонецЕсли;
СтрокаДоходыИРасходы.СуммаДоходов = 0;
СтрокаДоходыИРасходы.СуммаРасходов = СуммаКСписанию;
СтрокаДоходыИРасходы.Сумма = СуммаКСписанию;

СтрокаДоходыИРасходы.СодержаниеПроводки = НСтр("ru='Отражение расходов'");

КонецЕсли;

Если Окр(СуммаКСписанию, 2, 1) <> 0 Тогда

// Продвигаем себестоимость продаж.
Если Не СтрокаТаблицаЗапасы.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.ПодарочныйСертификат") Тогда
СтрокаПродажи = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаПродажи.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаПродажи, СтрокаТаблицаЗапасы);
СтрокаПродажи.Количество = 0;
СтрокаПродажи.Сумма = 0;
СтрокаПродажи.СуммаНДС = 0;
СтрокаПродажи.Себестоимость = СуммаКСписанию;
КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЦикла;

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы = ВременнаяТаблицаЗапасы;

КонецПроцедуры // СформироватьТаблицаЗапасыПродажа()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасыВозврат(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

ОснованиеНакладная = Неопределено;
Если ЗначениеЗаполнено(ДокументСсылкаРасходнаяНакладная.ДокументОснование)
И ТипЗнч(ДокументСсылкаРасходнаяНакладная.ДокументОснование) = Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
ОснованиеНакладная = ДокументСсылкаРасходнаяНакладная.ДокументОснование;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;

// Установка исключительной блокировки контролируемых остатков запасов.
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаЗапасы.Организация КАК Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета КАК СчетУчета,
| ТаблицаЗапасы.Номенклатура КАК Номенклатура,
| ТаблицаЗапасы.Характеристика КАК Характеристика,
| ТаблицаЗапасы.Партия КАК Партия,
| ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) КАК ЗаказПокупателя
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗапасы.Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета,
| ТаблицаЗапасы.Номенклатура,
| ТаблицаЗапасы.Характеристика,
| ТаблицаЗапасы.Партия";

РезультатЗапроса = Запрос.Выполнить();

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.Запасы");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;

Для каждого КолонкаРезультатЗапроса из РезультатЗапроса.Колонки Цикл
ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя);
КонецЦикла;
Блокировка.Заблокировать();

// Получение остатков запасов по стоимости.
Если ЗначениеЗаполнено(ОснованиеНакладная) Тогда

Запрос.Текст =
"ВЫБРАТЬ
| Запасы.Организация КАК Организация,
| Запасы.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| Запасы.СчетУчета КАК СчетУчета,
| Запасы.Номенклатура КАК Номенклатура,
| Запасы.Характеристика КАК Характеристика,
| Запасы.Партия КАК Партия,
| ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) КАК ЗаказПокупателя,
| СУММА(Запасы.Количество) КАК КоличествоОстаток,
| СУММА(Запасы.Сумма) КАК СуммаОстаток
|ИЗ
| РегистрНакопления.Запасы КАК Запасы
|ГДЕ
| Запасы.Регистратор = &ОснованиеНакладная
|
|СГРУППИРОВАТЬ ПО
| Запасы.Организация,
| Запасы.СтруктурнаяЕдиница,
| Запасы.СчетУчета,
| Запасы.Номенклатура,
| Запасы.Характеристика,
| Запасы.Партия";

Запрос.УстановитьПараметр("ОснованиеНакладная", ОснованиеНакладная);

Иначе

Запрос.Текст =
"ВЫБРАТЬ
| ЗапасыОстатки.Организация КАК Организация,
| ЗапасыОстатки.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ЗапасыОстатки.СчетУчета КАК СчетУчета,
| ЗапасыОстатки.Номенклатура КАК Номенклатура,
| ЗапасыОстатки.Характеристика КАК Характеристика,
| ЗапасыОстатки.Партия КАК Партия,
| ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
| СУММА(ЗапасыОстатки.КоличествоОстаток) КАК КоличествоОстаток,
| СУММА(ЗапасыОстатки.СуммаОстаток) КАК СуммаОстаток
|ИЗ
| (ВЫБРАТЬ
| ЗапасыОстатки.Организация КАК Организация,
| ЗапасыОстатки.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ЗапасыОстатки.СчетУчета КАК СчетУчета,
| ЗапасыОстатки.Номенклатура КАК Номенклатура,
| ЗапасыОстатки.Характеристика КАК Характеристика,
| ЗапасыОстатки.Партия КАК Партия,
| ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка) КАК ЗаказПокупателя,
| СУММА(ЗапасыОстатки.КоличествоОстаток) КАК КоличествоОстаток,
| СУММА(ЗапасыОстатки.СуммаОстаток) КАК СуммаОстаток
| ИЗ
| РегистрНакопления.Запасы.Остатки(
| &МоментКонтроля,
| (Организация, СтруктурнаяЕдиница, СчетУчета, Номенклатура, Характеристика, Партия, ЗаказПокупателя) В
| (ВЫБРАТЬ
| ТаблицаЗапасы.Организация,
| ТаблицаЗапасы.СтруктурнаяЕдиница,
| ТаблицаЗапасы.СчетУчета,
| ТаблицаЗапасы.Номенклатура,
| ТаблицаЗапасы.Характеристика,
| ТаблицаЗапасы.Партия,
| ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы)) КАК ЗапасыОстатки
|
| СГРУППИРОВАТЬ ПО
| ЗапасыОстатки.Организация,
| ЗапасыОстатки.СтруктурнаяЕдиница,
| ЗапасыОстатки.СчетУчета,
| ЗапасыОстатки.Номенклатура,
| ЗапасыОстатки.Характеристика,
| ЗапасыОстатки.Партия
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ДвиженияДокументаЗапасы.Организация,
| ДвиженияДокументаЗапасы.СтруктурнаяЕдиница,
| ДвиженияДокументаЗапасы.СчетУчета,
| ДвиженияДокументаЗапасы.Номенклатура,
| ДвиженияДокументаЗапасы.Характеристика,
| ДвиженияДокументаЗапасы.Партия,
| ДвиженияДокументаЗапасы.ЗаказПокупателя,
| ВЫБОР
| КОГДА ДвиженияДокументаЗапасы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| ТОГДА ЕСТЬNULL(ДвиженияДокументаЗапасы.Количество, 0)
| ИНАЧЕ -ЕСТЬNULL(ДвиженияДокументаЗапасы.Количество, 0)
| КОНЕЦ,
| ВЫБОР
| КОГДА ДвиженияДокументаЗапасы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| ТОГДА ЕСТЬNULL(ДвиженияДокументаЗапасы.Сумма, 0)
| ИНАЧЕ -ЕСТЬNULL(ДвиженияДокументаЗапасы.Сумма, 0)
| КОНЕЦ
| ИЗ
| РегистрНакопления.Запасы КАК ДвиженияДокументаЗапасы
| ГДЕ
| ДвиженияДокументаЗапасы.Регистратор = &Ссылка
| И ДвиженияДокументаЗапасы.Период <= &ПериодКонтроля) КАК ЗапасыОстатки
|
|СГРУППИРОВАТЬ ПО
| ЗапасыОстатки.Организация,
| ЗапасыОстатки.СтруктурнаяЕдиница,
| ЗапасыОстатки.СчетУчета,
| ЗапасыОстатки.Номенклатура,
| ЗапасыОстатки.Характеристика,
| ЗапасыОстатки.Партия,
| ЗапасыОстатки.ЗаказПокупателя";

Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаРасходнаяНакладная);
Запрос.УстановитьПараметр("МоментКонтроля", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая));
Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата);

КонецЕсли;

РезультатЗапроса = Запрос.Выполнить();
ТаблицаЗапасыОстатки = РезультатЗапроса.Выгрузить();

ТаблицаЗапасыОстатки.Индексы.Добавить("Организация,СтруктурнаяЕдиница,СчетУчета,Номенклатура,Характеристика,Партия");

Для н = 0 По СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы.Количество() - 1 Цикл

СтрокаТаблицаЗапасы = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы[н];

СтруктураДляПоиска = Новый Структура;
СтруктураДляПоиска.Вставить("Организация", СтрокаТаблицаЗапасы.Организация);
СтруктураДляПоиска.Вставить("СчетУчета", СтрокаТаблицаЗапасы.СчетУчета);
СтруктураДляПоиска.Вставить("Номенклатура", СтрокаТаблицаЗапасы.Номенклатура);
СтруктураДляПоиска.Вставить("Характеристика", СтрокаТаблицаЗапасы.Характеристика);
СтруктураДляПоиска.Вставить("Партия", СтрокаТаблицаЗапасы.Партия);

КоличествоТребуетсяСвободныйОстаток = -СтрокаТаблицаЗапасы.Количество;

Если КоличествоТребуетсяСвободныйОстаток > 0 Тогда

МассивСтрокОстатков = ТаблицаЗапасыОстатки.НайтиСтроки(СтруктураДляПоиска);

КоличествоОстаток = 0;
СуммаОстаток = 0;

Если МассивСтрокОстатков.Количество() > 0 Тогда
КоличествоОстаток = МассивСтрокОстатков[0].КоличествоОстаток;
СуммаОстаток = МассивСтрокОстатков[0].СуммаОстаток;
КонецЕсли;

Если КоличествоОстаток > 0 И КоличествоОстаток > КоличествоТребуетсяСвободныйОстаток Тогда

СуммаКСписанию = Окр(СуммаОстаток * КоличествоТребуетсяСвободныйОстаток / КоличествоОстаток , 2, 1);

МассивСтрокОстатков[0].КоличествоОстаток = МассивСтрокОстатков[0].КоличествоОстаток - КоличествоТребуетсяСвободныйОстаток;
МассивСтрокОстатков[0].СуммаОстаток = МассивСтрокОстатков[0].СуммаОстаток - СуммаКСписанию;

ИначеЕсли КоличествоОстаток = КоличествоТребуетсяСвободныйОстаток Тогда

СуммаКСписанию = СуммаОстаток;

МассивСтрокОстатков[0].КоличествоОстаток = 0;
МассивСтрокОстатков[0].СуммаОстаток = 0;

Иначе
СуммаКСписанию = 0;
КонецЕсли;

// Запасы.
Если Окр((СтрокаТаблицаЗапасы.Сумма + СуммаКСписанию), 2, 1) <> 0 Тогда

СтрокаТаблицыРасход = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаЗапасы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыРасход, СтрокаТаблицаЗапасы);

РасчетнаяСумма = -(СтрокаТаблицыРасход.Сумма + СуммаКСписанию);
СтрокаТаблицыРасход.ВидДвижения = ВидДвиженияНакопления.Приход;
СтрокаТаблицыРасход.Сумма = РасчетнаяСумма;

СтрокаТаблицыРасход.Количество = 0;
СтрокаТаблицыРасход.ДокументПродажи = ДокументСсылкаРасходнаяНакладная;
СтрокаТаблицыРасход.Возврат = Истина;
СтрокаТаблицыРасход.ФиксированнаяСтоимость = Истина;

// Доходы и расходы.
СтрокаДоходыИРасходы = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаДоходыИРасходы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДоходыИРасходы, СтрокаТаблицаЗапасы);

СтрокаДоходыИРасходы.СтруктурнаяЕдиница = Неопределено;
СтрокаДоходыИРасходы.ЗаказПокупателя = Неопределено;
СтрокаДоходыИРасходы.НаправлениеДеятельности = Справочники.НаправленияДеятельности.Прочее;
Если СтрокаТаблицыРасход.Сумма < 0 Тогда
СтрокаДоходыИРасходы.СчетУчета = ПланыСчетов.Управленческий.ПрочиеРасходы;
СтрокаДоходыИРасходы.СуммаРасходов = - СтрокаТаблицыРасход.Сумма;
Иначе
СтрокаДоходыИРасходы.СчетУчета = ПланыСчетов.Управленческий.ПрочиеДоходы;
СтрокаДоходыИРасходы.СуммаДоходов = СтрокаТаблицыРасход.Сумма;
КонецЕсли;

СтрокаДоходыИРасходы.СодержаниеПроводки = НСтр("ru='Отражение расходов'");

// Управленческий.
СтрокаТаблицаУправленческий = СтруктураДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаУправленческий.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицаУправленческий, СтрокаТаблицаЗапасы);
Если СтрокаТаблицыРасход.Сумма < 0 Тогда
СтрокаТаблицаУправленческий.СчетДт = ПланыСчетов.Управленческий.ПрочиеРасходы;
СтрокаТаблицаУправленческий.СчетКт = СтрокаТаблицаЗапасы.СчетКт;
СтрокаТаблицаУправленческий.Сумма = - СтрокаТаблицыРасход.Сумма;
Иначе
СтрокаТаблицаУправленческий.СчетДт = СтрокаТаблицаЗапасы.СчетКт;
СтрокаТаблицаУправленческий.СчетКт = ПланыСчетов.Управленческий.ПрочиеДоходы;
СтрокаТаблицаУправленческий.Сумма = СтрокаТаблицыРасход.Сумма;
КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецПроцедуры // СформироватьТаблицаЗапасыВозврат()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗакупки(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаЗакупки.Период КАК Период,
| ТаблицаЗакупки.Организация КАК Организация,
| ТаблицаЗакупки.Номенклатура КАК Номенклатура,
| ТаблицаЗакупки.Характеристика КАК Характеристика,
| ТаблицаЗакупки.Партия КАК Партия,
| ТаблицаЗакупки.Заказ КАК ЗаказПоставщику,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ТаблицаЗакупки.ДокументОснование) = ТИП(Документ.ПриходнаяНакладная)
| И ТаблицаЗакупки.ДокументОснование <> ЗНАЧЕНИЕ(Документ.ПриходнаяНакладная.ПустаяСсылка)
| ТОГДА ТаблицаЗакупки.ДокументОснование
| ИНАЧЕ ТаблицаЗакупки.Документ
| КОНЕЦ КАК Документ,
| ТаблицаЗакупки.СтавкаНДС КАК СтавкаНДС,
| -СУММА(ТаблицаЗакупки.Количество) КАК Количество,
| -СУММА(ТаблицаЗакупки.СуммаНДСЗакупкиПродажи) КАК СуммаНДС,
| -СУММА(ТаблицаЗакупки.Сумма) КАК Сумма
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗакупки
|ГДЕ
| ТаблицаЗакупки.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
| И (ТаблицаЗакупки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ВозвратПоставщику)
| ИЛИ ТаблицаЗакупки.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ВозвратКомитенту))
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗакупки.Период,
| ТаблицаЗакупки.Организация,
| ТаблицаЗакупки.Номенклатура,
| ТаблицаЗакупки.Характеристика,
| ТаблицаЗакупки.Партия,
| ТаблицаЗакупки.Заказ,
| ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ТаблицаЗакупки.ДокументОснование) = ТИП(Документ.ПриходнаяНакладная)
| И ТаблицаЗакупки.ДокументОснование <> ЗНАЧЕНИЕ(Документ.ПриходнаяНакладная.ПустаяСсылка)
| ТОГДА ТаблицаЗакупки.ДокументОснование
| ИНАЧЕ ТаблицаЗакупки.Документ
| КОНЕЦ,
| ТаблицаЗакупки.СтавкаНДС";

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаЗакупки", РезультатЗапроса.Выгрузить());

КонецПроцедуры // СформироватьТаблицаЗакупки()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаПродажи(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаПродажи.Период КАК Период,
| ТаблицаПродажи.Организация КАК Организация,
| ТаблицаПродажи.Номенклатура КАК Номенклатура,
| ТаблицаПродажи.Характеристика КАК Характеристика,
| ТаблицаПродажи.Партия КАК Партия,
| ВЫБОР
| КОГДА ТаблицаПродажи.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаПродажи.Заказ
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ КАК ЗаказПокупателя,
| ТаблицаПродажи.Документ КАК Документ,
| ТаблицаПродажи.СтавкаНДС КАК СтавкаНДС,
| ТаблицаПродажи.ПодразделениеПродажи КАК Подразделение,
| ТаблицаПродажи.Ответственный КАК Ответственный,
| СУММА(ТаблицаПродажи.Количество) КАК Количество,
| СУММА(ТаблицаПродажи.СуммаНДСЗакупкиПродажи) КАК СуммаНДС,
| СУММА(ТаблицаПродажи.Сумма) КАК Сумма,
| ТаблицаПродажи.Сумма + ТаблицаПродажи.СуммаСкидкиНаценки + ТаблицаПродажи.СуммаАвтоматическойСкидки КАК СуммаБезСкидки,
| 0 КАК Себестоимость,
| ТаблицаПродажи.НоменклатураНабора КАК НоменклатураНабора,
| ТаблицаПродажи.ХарактеристикаНабора КАК ХарактеристикаНабора
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаПродажи
|ГДЕ
| ТаблицаПродажи.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПродажаПокупателю)
| И НЕ ТаблицаПродажи.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.ПодарочныйСертификат)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаПродажи.Период,
| ТаблицаПродажи.Организация,
| ТаблицаПродажи.Номенклатура,
| ТаблицаПродажи.Характеристика,
| ТаблицаПродажи.Партия,
| ВЫБОР
| КОГДА ТаблицаПродажи.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаПродажи.Заказ
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ,
| ТаблицаПродажи.Документ,
| ТаблицаПродажи.СтавкаНДС,
| ТаблицаПродажи.ПодразделениеПродажи,
| ТаблицаПродажи.Ответственный,
| ТаблицаПродажи.НоменклатураНабора,
| ТаблицаПродажи.ХарактеристикаНабора,
| ТаблицаПродажи.Сумма + ТаблицаПродажи.СуммаСкидкиНаценки + ТаблицаПродажи.СуммаАвтоматическойСкидки";

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаПродажи", РезультатЗапроса.Выгрузить());

КонецПроцедуры // СформироватьТаблицаПродажи()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаВыпускПродукции(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| МИНИМУМ(ТаблицаВыпускПродукции.НомерСтроки) КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ТаблицаВыпускПродукции.Период КАК Период,
| ТаблицаВыпускПродукции.Организация КАК Организация,
| ТаблицаВыпускПродукции.ПодразделениеПродажи КАК СтруктурнаяЕдиница,
| ТаблицаВыпускПродукции.Номенклатура КАК Номенклатура,
| ТаблицаВыпускПродукции.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ТаблицаВыпускПродукции.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаВыпускПродукции.Заказ
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ КАК ЗаказПокупателя,
| СУММА(ТаблицаВыпускПродукции.Количество) КАК Количество
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаВыпускПродукции
|ГДЕ
| ТаблицаВыпускПродукции.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
|
|СГРУППИРОВАТЬ ПО
| ТаблицаВыпускПродукции.Период,
| ТаблицаВыпускПродукции.Организация,
| ТаблицаВыпускПродукции.ПодразделениеПродажи,
| ТаблицаВыпускПродукции.Номенклатура,
| ТаблицаВыпускПродукции.Характеристика,
| ВЫБОР
| КОГДА ТаблицаВыпускПродукции.Заказ ССЫЛКА Документ.ЗаказПокупателя
| ТОГДА ТаблицаВыпускПродукции.Заказ
| ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
| КОНЕЦ";

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаВыпускПродукции", РезультатЗапроса.Выгрузить());

КонецПроцедуры // СформироватьТаблицаВыпускПродукции()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасыНаСкладах(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| МИНИМУМ(ТаблицаЗапасыНаСкладах.НомерСтроки) КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| ТаблицаЗапасыНаСкладах.Период КАК Период,
| ТаблицаЗапасыНаСкладах.Организация КАК Организация,
| ТаблицаЗапасыНаСкладах.Номенклатура КАК Номенклатура,
| ТаблицаЗапасыНаСкладах.Характеристика КАК Характеристика,
| ТаблицаЗапасыНаСкладах.Партия КАК Партия,
| ТаблицаЗапасыНаСкладах.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| ТаблицаЗапасыНаСкладах.Ячейка КАК Ячейка,
| СУММА(ТаблицаЗапасыНаСкладах.Количество) КАК Количество
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасыНаСкладах
|ГДЕ
| (ТаблицаЗапасыНаСкладах.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
| ИЛИ ТаблицаЗапасыНаСкладах.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.ПодарочныйСертификат))
| И НЕ ТаблицаЗапасыНаСкладах.ОрдерныйСклад
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗапасыНаСкладах.Период,
| ТаблицаЗапасыНаСкладах.Организация,
| ТаблицаЗапасыНаСкладах.Номенклатура,
| ТаблицаЗапасыНаСкладах.Характеристика,
| ТаблицаЗапасыНаСкладах.Партия,
| ТаблицаЗапасыНаСкладах.СтруктурнаяЕдиница,
| ТаблицаЗапасыНаСкладах.Ячейка";

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаЗапасыНаСкладах", РезультатЗапроса.Выгрузить());

КонецПроцедуры // СформироватьТаблицаЗапасыНаСкладах()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасыКРасходуСоСкладов(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| МИНИМУМ(ТаблицаЗапасыКРасходуСоСкладов.НомерСтроки) КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ТаблицаЗапасыКРасходуСоСкладов.Период КАК Период,
| ТаблицаЗапасыКРасходуСоСкладов.Организация КАК Организация,
| ТаблицаЗапасыКРасходуСоСкладов.Номенклатура КАК Номенклатура,
| ТаблицаЗапасыКРасходуСоСкладов.Характеристика КАК Характеристика,
| ТаблицаЗапасыКРасходуСоСкладов.Партия КАК Партия,
| ТаблицаЗапасыКРасходуСоСкладов.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
| СУММА(ТаблицаЗапасыКРасходуСоСкладов.Количество) КАК Количество
|ИЗ
| ВременнаяТаблицаЗапасы КАК ТаблицаЗапасыКРасходуСоСкладов
|ГДЕ
| ТаблицаЗапасыКРасходуСоСкладов.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
| И ТаблицаЗапасыКРасходуСоСкладов.ОрдерныйСклад
|
|СГРУППИРОВАТЬ ПО
| ТаблицаЗапасыКРасходуСоСкладов.Период,
| ТаблицаЗапасыКРасходуСоСкладов.Организация,
| ТаблицаЗапасыКРасходуСоСкладов.Номенклатура,
| ТаблицаЗапасыКРасходуСоСкладов.Характеристика,
| ТаблицаЗапасыКРасходуСоСкладов.Партия,
| ТаблицаЗапасыКРасходуСоСкладов.СтруктурнаяЕдиница";

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаЗапасыКРасходуСоСкладов", РезультатЗапроса.Выгрузить());

КонецПроцедуры // СформироватьТаблицаЗапасыКРасходуСоСкладов()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасыПринятые(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

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

Запрос.УстановитьПараметр("ПриемЗапасов", "");
Запрос.УстановитьПараметр("ПриемЗапасовТоварыНаКомиссии", НСтр("ru = 'Прием запасов'"));
Запрос.УстановитьПараметр("ВалютаУпрУчета", Константы.ВалютаУчета.Получить());

РезультатЗапроса = Запрос.Выполнить();

СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаЗапасыПринятые", РезультатЗапроса.Выгрузить());

КонецПроцедуры // СформироватьТаблицаЗапасыПринятые()

// Формирует таблицу значений, содержащую данные для проведения по регистру.
// Таблицы значений сохраняет в свойствах структуры "ДополнительныеСвойства".
//
Процедура СформироватьТаблицаЗапасыПереданные(ДокументСсылкаРасходнаяНакладная, СтруктураДополнительныеСвойства)

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| МИНИМУМ(ТаблицаЗапасыПереданные.НомерСтроки) КАК НомерСтроки,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ТаблицаЗапасыПереданные.Период КАК Период,
| ТаблицаЗапасыПереданные.Организация КАК Организация,
| ТаблицаЗапасыПереданные.Номенклатура КАК Номенклатура,
| ТаблицаЗапасыПереданные.Характеристика КАК Характеристика,
| ТаблицаЗапасыПереданные.Партия КАК Партия,
| ТаблицаЗапасыПереданные.Контрагент КАК Контрагент,
| ТаблицаЗапасыПереданные.Договор КАК Договор,
| ТаблицаЗапасыПереданные.Заказ КАК Заказ,
| ВЫБОР
| КОГДА ТаблицаЗапасыПереданные.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПередачаНаКомиссию)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыПриемаПередачиТоваров.ПередачаКомиссионеру)
| КОГДА ТаблицаЗапасыПереданные.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыПриемаПередачиТоваров.ПередачаВПереработку)
| ИНАЧЕ ЗНАЧЕНИЕ(Пер
6. SlavaKron 08.07.19 18:13 Сейчас в теме
"СтруктураЗаполненияСекции.Вставить("ВыводимоеИмя", ПараметрыСеанса.ТекущийПользователь);"
Пардон, вам надо найти код, в котором заполняются параметры области "Подписи".
7. user1235550 08.07.19 21:23 Сейчас в теме
(6)Заполнил строго в блок "подписи", вводил и "СтруктураЗаполненияСекции.Вставить("ВыводимоеИмя", ПараметрыСеанса.ТекущийПользователь);"
и также "СтруктураЗаполненияСекции.Вставить("Подписи|ВыводимоеИмя", ПараметрыСеанса.ТекущийПользователь);" но результата нет. Пользователь так и не отображается при печати((
Прикрепленные файлы:
8. kuzyaa 2 10.07.19 16:07 Сейчас в теме
(7)
""ОбластьМакета = Макет.ПолучитьОбласть("Подписи|ОсновныеДанные"); // Или как она у вас называется, Ищите где заполняется эта область 
   //Заполнение области             
 ОбластьМакета.Параметры.ВвыводимоеИмя = ПараметрыСеанса.ТекущийПользователь; // и туда вставляете
 ТабличныйДокумент.Вывести(ОбластьМакета);"" 



И на скрине вы вставили не в ту область если через структуру хотели...

""СтруктураЗаполненияСекции.Вставить("ВыводимоеИмя", ПараметрыСеанса.ТекущийПользователь); // Добавляете значение параметра в структуру
ОбластьМакета = Макет.ПолучитьОбласть("Подписи|ОсновныеДанные"); //Получаете область макета

Областьмакета.Параметры.Заполнить(СтруктураЗаполненияСекции); // Тогда и заполняйте данными из структуры в которую добавили значение"" 
user1235550; +1 Ответить
9. user1235550 10.07.19 17:37 Сейчас в теме
(8)Спасибо огромное! Очень выручили))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот