#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("Обеспечение");
МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетРабот");
МеханизмыДокумента.Добавить("УчетНДС");
МеханизмыДокумента.Добавить("ИсправлениеДокументов");
МеханизмыДокумента.Добавить("ОперативныйУчетТоваровОрганизаций");
АктВыполненныхВнутреннихРаботЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.АктВыполненныхВнутреннихРабот") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры, ДокументСсылка);
АктВыполненныхВнутреннихРаботЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры);
ПроведениеДокументов.ДобавитьЗапросыСторноДвижений(Запрос, ТекстыЗапроса, Регистры, ПустаяСсылка().Метаданные());
РасчетСебестоимостиПроведениеДокументов.ОтразитьВМеханизмеУчетаЗатратИСебестоимости(ДокументСсылка, Запрос, ТекстыЗапроса, Регистры);
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
#Область СтандартныеПодсистемыКоманды
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
ИсправлениеДокументов.ДобавитьКомандуИсправление(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
ИсправлениеДокументов.ДобавитьКомандуСторно(КомандыСозданияНаОсновании, ПустаяСсылка().Метаданные());
АктВыполненныхВнутреннихРаботЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.АктВыполненныхВнутреннихРабот) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Обработчик = "ПроизводствоКлиент.СоздатьАктВыполненныхВнутреннихРаботНаОсновании";
КомандаСоздатьНаОсновании.Менеджер = "Документ.АктВыполненныхВнутреннихРабот";
КомандаСоздатьНаОсновании.Идентификатор = "СозданиеАктаВыполненныхВнутреннихРабот";
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.АктВыполненныхВнутреннихРабот);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьУправлениеПроизводством2_2";
КомандаСоздатьНаОсновании.МножественныйВыбор = Истина;
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
АктВыполненныхВнутреннихРаботЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
АктВыполненныхВнутреннихРаботЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
#КонецОбласти
#Область СменаСтатуса
Функция СформироватьЗапросПроверкиПриСменеСтатуса(МассивДокументов, НовыйСтатус, ДополнительныеПараметры) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаДокументов.Ссылка КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Ссылка) КАК Представление,
| ПРЕДСТАВЛЕНИЕ(ТаблицаДокументов.Статус) КАК ПредставлениеТекущегоСтатуса,
| ПРЕДСТАВЛЕНИЕ(&Статус) КАК ПредставлениеНовогоСтатуса,
| ТаблицаДокументов.Статус = &Статус КАК СтатусСовпадает,
| ТаблицаДокументов.Проведен КАК Проведен,
| ТаблицаДокументов.ПометкаУдаления КАК ПометкаУдаления,
| ИСТИНА КАК ЗаписьПроведением
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот КАК ТаблицаДокументов
|ГДЕ
| ТаблицаДокументов.Ссылка В(&МассивДокументов)
|";
Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыАктовВыполненныхВнутреннихРабот[НовыйСтатус]);
Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
Возврат Запрос;
КонецФункции
Функция ПроверкаПередСменойСтатуса(ВыборкаПроверки, НовыйСтатус, ДополнительныеПараметры) Экспорт
Возврат Истина;
КонецФункции
Функция СтатусыДокументаИзменяемыеИзСписка() Экспорт
Таблица = ОбщегоНазначенияУТ.ТаблицаСтатусовИзменяемыхИзСписка();
Если ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыАктовВыполненныхВнутреннихРабот") Тогда
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыАктовВыполненныхВнутреннихРабот.Выставлен);
ОбщегоНазначенияУТ.ДобавитьСтрокуВТаблицуСтатусовИзменяемыхИзСписка(Таблица, Перечисления.СтатусыАктовВыполненныхВнутреннихРабот.Принят);
КонецЕсли;
Возврат Таблица;
КонецФункции
#КонецОбласти
Функция МакетФормыВыбораНазначений() Экспорт
МакетФормы = Справочники.Назначения.МакетФормыВыбораНазначений();
ШаблонНазначения = Справочники.Назначения.ДобавитьШаблонНазначений(МакетФормы, "Объект.Товары.Назначение");
ШаблонНазначения.НаправлениеДеятельности = "Объект.НаправлениеДеятельности";
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.Давальческое21));
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.ДавальческоеПродукция22));
ШаблонНазначения.ТипыНазначений.Удалить(ШаблонНазначения.ТипыНазначений.Найти(Перечисления.ТипыНазначений.Давальческое2_5));
ОписаниеКолонок = Справочники.Назначения.ДобавитьОписаниеКолонок(МакетФормы, "ОбеспечениеЗаказовРаботами", Истина, "Объект.Товары.Назначение");
ОписаниеКолонок.Колонки.НайтиПоЗначению("Потребность").Пометка = Истина;
ОписаниеКолонок.УсловиеИспользования = "Объект.Товары.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)";
ОписаниеКолонок.ПутиКДанным.Номенклатура = "Объект.Товары.Номенклатура";
ОписаниеКолонок.ПутиКДанным.Характеристика = "Объект.Товары.Характеристика";
ОписаниеКолонок.ПутиКДанным.Подразделение = "Объект.Товары.Подразделение";
ОписаниеКолонок.ИмяЭлементаФормы = "Назначение";
Возврат МакетФормы;
КонецФункции
#Область УчетНДС
Функция ПараметрыЗаполненияВидаДеятельностиНДС(Объект) Экспорт
ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияВидаДеятельностиНДС();
ПараметрыЗаполнения.Дата = Объект.Дата;
ПараметрыЗаполнения.НаправлениеДеятельности = Объект.НаправлениеДеятельности;
ПараметрыЗаполнения.ДвижениеТоваровИРаботВПроизводстве = Истина;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами Тогда
ПараметрыЗаполнения.Организация = Объект.ОрганизацияПолучатель;
Иначе
ПараметрыЗаполнения.Организация = Объект.Организация;
КонецЕсли;
Возврат ПараметрыЗаполнения;
КонецФункции
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Подразделение)
| И ЗначениеРазрешено(Статус)";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
#Область Инициализация
Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
ИсточникиДанных = Новый Соответствие;
Возврат ИсточникиДанных;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.АктВыполненныхВнутреннихРабот";
ЗначенияПараметров = ЗначенияПараметровПроведения();
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ТекстыЗапросаВременныхТаблиц = Новый Соответствие;
ВЗапросеЕстьИсточник = Истина;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
СинонимТаблицыДокумента = "ДанныеДокумента";
ТекстыЗапросаВременныхТаблиц.Вставить("ВтПодразделения", ТекстЗапросаВтПодразделения(Запрос, ТекстыЗапроса));
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров,
ТекстыЗапросаВременныхТаблиц);
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Проведен КАК Проведен,
| Реквизиты.ПометкаУдаления КАК ПометкаУдаления,
| Реквизиты.Номер КАК Номер,
| Реквизиты.Дата КАК Дата,
| Реквизиты.Дата КАК Период,
| Реквизиты.Организация КАК Организация,
| Реквизиты.ОрганизацияПолучатель КАК ОрганизацияПолучатель,
| Реквизиты.Подразделение КАК Подразделение,
| Реквизиты.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| Реквизиты.Статус КАК Статус,
| Реквизиты.ПеремещениеПодДеятельность КАК ПеремещениеПодДеятельность,
| Реквизиты.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Реквизиты.Ответственный КАК Ответственный,
| Реквизиты.Исправление КАК Исправление,
| Реквизиты.СторнируемыйДокумент КАК СторнируемыйДокумент,
| Реквизиты.ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| Реквизиты.Комментарий КАК Комментарий,
| НастройкиХозяйственныхОпераций.Ссылка КАК НастройкаХозяйственнойОперации
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот КАК Реквизиты
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НастройкиХозяйственныхОпераций КАК НастройкиХозяйственныхОпераций
| ПО Реквизиты.ХозяйственнаяОперация = НастройкиХозяйственныхОпераций.ХозяйственнаяОперация
|ГДЕ
| Реквизиты.Ссылка = &Ссылка
|";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
ПараметрыПроведения = ЗначенияПараметровПроведения(Реквизиты);
Для Каждого ТекПараметр Из ПараметрыПроведения Цикл
Запрос.УстановитьПараметр(ТекПараметр.Ключ, ТекПараметр.Значение);
КонецЦикла;
УчетПрослеживаемыхТоваровЛокализация.УстановитьПараметрыИспользованияУчетаПрослеживаемыхТоваров(Запрос);
РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализации(Запрос, Реквизиты);
КонецПроцедуры
Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)
ЗначенияПараметровПроведения = Новый Структура;
ЗначенияПараметровПроведения.Вставить("ИдентификаторМетаданных", ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Документ.АктВыполненныхВнутреннихРабот"));
ЗначенияПараметровПроведения.Вставить("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета",
ПолучитьФункциональнуюОпцию("ФормироватьВидыЗапасовПоГруппамФинансовогоУчета"));
ЗначенияПараметровПроведения.Вставить("АналитическийУчетПоГруппамПродукции",
ПолучитьФункциональнуюОпцию("АналитическийУчетПоГруппамПродукции"));
Если Реквизиты <> Неопределено Тогда
ЗначенияПараметровПроведения.Вставить("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
КонецЕсли;
Возврат ЗначенияПараметровПроведения;
КонецФункции
Процедура ИнициализироватьКлючиАналитикиНоменклатуры(Запрос)
Если Запрос = Неопределено
ИЛИ Запрос.Параметры.Свойство("КлючиАналитикиНоменклатурыИнициализированы") Тогда
Возврат;
КонецЕсли;
ЗапросАналитики = Новый Запрос(
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТовары.Склад КАК Склад,
| ТаблицаТовары.Номенклатура КАК Номенклатура,
| ТаблицаТовары.Характеристика КАК Характеристика,
| ТаблицаТовары.Назначение КАК Назначение,
| ТаблицаТовары.Серия КАК Серия,
| ТаблицаТовары.СтатьяКалькуляции КАК СтатьяКалькуляции
|ИЗ
| (
| ВЫБРАТЬ
| Работы.Номенклатура КАК Номенклатура,
| Работы.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| &Подразделение КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК Работы
| ГДЕ
| Работы.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Работы.Номенклатура КАК Номенклатура,
| Работы.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| Работы.Подразделение КАК Склад,
| Работы.Назначение КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК Работы
| ГДЕ
| Работы.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Работы.Номенклатура КАК Номенклатура,
| Работы.Характеристика КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) КАК Серия,
| Работы.Подразделение КАК Склад,
| ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
| ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) КАК СтатьяКалькуляции
| ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК Работы
| ГДЕ
| Работы.Ссылка = &Ссылка
| ) КАК ТаблицаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
| ПО ТаблицаТовары.Номенклатура = Аналитика.Номенклатура
| И ТаблицаТовары.Характеристика = Аналитика.Характеристика
| И ТаблицаТовары.Серия = Аналитика.Серия
| И ТаблицаТовары.Склад = Аналитика.МестоХранения
| И ТаблицаТовары.Назначение = Аналитика.Назначение
| И ТаблицаТовары.СтатьяКалькуляции = Аналитика.СтатьяКалькуляции
|ГДЕ
| Аналитика.Номенклатура ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТовары.Склад,
| ТаблицаТовары.Номенклатура,
| ТаблицаТовары.Характеристика,
| ТаблицаТовары.Назначение,
| ТаблицаТовары.Серия,
| ТаблицаТовары.СтатьяКалькуляции");
ЗапросАналитики.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
ЗапросАналитики.УстановитьПараметр("Подразделение", Запрос.Параметры.Подразделение);
Выборка = ЗапросАналитики.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьКлючАналитики(Выборка)
КонецЦикла;
Запрос.УстановитьПараметр("КлючиАналитикиНоменклатурыИнициализированы", Истина);
КонецПроцедуры
#КонецОбласти
#Область ПроведениеПоРеглУчету
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат АктВыполненныхВнутреннихРаботЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат АктВыполненныхВнутреннихРаботЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
#КонецОбласти
#Область ТекстыЗапросовПроведения
#Область ТекстыЗапросовВременныеТаблицы
Функция ТекстЗапросаВтПодразделения(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтПодразделения";
ТекстЗапроса =
"ВЫБРАТЬ
| Подразделения.Ссылка КАК Ссылка,
| Подразделения.Организация КАК Организация,
| Подразделения.МестоХранения КАК МестоХранения,
| МИНИМУМ(Подразделения.ДополнительнаяЗапись) КАК ДополнительнаяЗапись
|ПОМЕСТИТЬ ВтПодразделения
|ИЗ
| (ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК МестоХранения,
| ЛОЖЬ КАК ДополнительнаяЗапись
| ИЗ
| Документ.АктВыполненныхВнутреннихРабот КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| &Ссылка,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА &ОрганизацияПолучатель
| ИНАЧЕ &Организация
| КОНЕЦ,
| ДанныеДокумента.Подразделение,
| ИСТИНА
| ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК ДанныеДокумента
| ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка
| И (НЕ ДанныеДокумента.Подразделение = &Подразделение
| ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами))
| ) КАК Подразделения
|
|СГРУППИРОВАТЬ ПО
| Подразделения.Ссылка,
| Подразделения.МестоХранения,
| Подразделения.ДополнительнаяЗапись,
| Подразделения.Организация
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтТовары";
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| Работы.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры,
| КлючиНоменклатурыБезНазначения.КлючАналитики КАК АналитикаНоменклатурыБезНазначения,
| КлючиПоПолучателю.КлючАналитики КАК АналитикаНоменклатурыПоПолучателю,
| КлючиПоПолучателюБезНазначения.КлючАналитики КАК АналитикаНоменклатурыПоПолучателюБезНазначения,
| Работы.Подразделение КАК ПодразделениеПолучатель,
| Работы.Номенклатура КАК Номенклатура,
| Работы.Характеристика КАК Характеристика,
| Работы.Назначение КАК Назначение,
| ВЫБОР
| КОГДА ЕСТЬNULL(Работы.Назначение.ВидДеятельностиНДС,ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА Работы.Назначение.ВидДеятельностиНДС
| ИНАЧЕ &ПеремещениеПодДеятельность
| КОНЕЦ КАК ВидДеятельностиНДС,
| ВЫБОР
| КОГДА &АналитическийУчетПоГруппамПродукции
| И НЕ СпрНоменклатура.ГруппаАналитическогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА СпрНоменклатура.ГруппаАналитическогоУчета
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ГруппаПродукцииОтправитель,
| ВЫБОР
| КОГДА &АналитическийУчетПоГруппамПродукции
| И НЕ Работы.ГруппаПродукции = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА Работы.ГруппаПродукции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ГруппаПродукции,
| СУММА(Работы.Количество) КАК Количество,
| Работы.ИдентификаторСтроки КАК ИдентификаторСтроки
|ПОМЕСТИТЬ втТовары
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК Работы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиНоменклатурыБезНазначения
| ПО КлючиНоменклатурыБезНазначения.Номенклатура = Работы.Номенклатура
| И КлючиНоменклатурыБезНазначения.Характеристика = Работы.Характеристика
| И КлючиНоменклатурыБезНазначения.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиНоменклатурыБезНазначения.МестоХранения = &Подразделение
| И КлючиНоменклатурыБезНазначения.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиНоменклатурыБезНазначения.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПоПолучателю
| ПО КлючиПоПолучателю.Номенклатура = Работы.Номенклатура
| И КлючиПоПолучателю.Характеристика = Работы.Характеристика
| И КлючиПоПолучателю.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиПоПолучателю.МестоХранения = Работы.Подразделение
| И КлючиПоПолучателю.Назначение = Работы.Назначение
| И КлючиПоПолучателю.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПоПолучателюБезНазначения
| ПО КлючиПоПолучателюБезНазначения.Номенклатура = Работы.Номенклатура
| И КлючиПоПолучателюБезНазначения.Характеристика = Работы.Характеристика
| И КлючиПоПолучателюБезНазначения.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиПоПолучателюБезНазначения.МестоХранения = Работы.Подразделение
| И КлючиПоПолучателюБезНазначения.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиПоПолучателюБезНазначения.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = Работы.Номенклатура
|ГДЕ
| Работы.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| КлючиПоПолучателюБезНазначения.КлючАналитики,
| Работы.Назначение,
| ВЫБОР
| КОГДА ЕСТЬNULL(Работы.Назначение.ВидДеятельностиНДС,ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА Работы.Назначение.ВидДеятельностиНДС
| ИНАЧЕ &ПеремещениеПодДеятельность
| КОНЕЦ,
| Работы.Характеристика,
| КлючиНоменклатурыБезНазначения.КлючАналитики,
| Работы.Номенклатура,
| Работы.АналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА &АналитическийУчетПоГруппамПродукции
| И НЕ СпрНоменклатура.ГруппаАналитическогоУчета = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА СпрНоменклатура.ГруппаАналитическогоУчета
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ВЫБОР
| КОГДА &АналитическийУчетПоГруппамПродукции
| И НЕ Работы.ГруппаПродукции = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА Работы.ГруппаПродукции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| Работы.Подразделение,
| КлючиПоПолучателю.КлючАналитики,
| Работы.ИдентификаторСтроки";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса)
ИмяРегистра = "ВтВидыЗапасов";
ИнициализироватьКлючиАналитикиНоменклатуры(Запрос);
ТекстЗапроса =
"ВЫБРАТЬ
| Аналитика.Ссылка КАК АналитикаНоменклатуры,
| КлючиНоменклатурыБезНазначения.КлючАналитики КАК АналитикаНоменклатурыБезНазначения,
| КлючиПоПолучателю.КлючАналитики КАК АналитикаНоменклатурыПоПолучателю,
| КлючиПоПолучателюБезНазначения.КлючАналитики КАК АналитикаНоменклатурыПоПолучателюБезНазначения,
| ВидыЗапасов.ПодразделениеПолучатель КАК ПодразделениеПолучатель,
| Аналитика.Номенклатура КАК Номенклатура,
| Аналитика.Характеристика КАК Характеристика,
| Аналитика.Назначение КАК Назначение,
| Аналитика.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ВидыЗапасов.ВидЗапасовПолучателя КАК ВидЗапасовПолучателя,
| ВЫБОР
| КОГДА ЕСТЬNULL(Аналитика.Назначение.ВидДеятельностиНДС, ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА Аналитика.Назначение.ВидДеятельностиНДС
| ИНАЧЕ &ПеремещениеПодДеятельность
| КОНЕЦ КАК ВидДеятельностиНДС,
| ВЫБОР
| КОГДА &АналитическийУчетПоГруппамПродукции
| И НЕ ВидыЗапасов.ГруппаПродукции = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА ВидыЗапасов.ГруппаПродукции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ГруппаПродукции,
| СУММА(ВидыЗапасов.Количество) КАК Количество,
| ВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
| ВЫБОР
| КОГДА Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И Аналитика.Номенклатура.ПрослеживаемыйТовар
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоПрослеживаемаяРабота
|ПОМЕСТИТЬ ВтВидыЗапасов
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот.ВидыЗапасов КАК ВидыЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиНоменклатурыБезНазначения
| ПО КлючиНоменклатурыБезНазначения.Номенклатура = ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура
| И КлючиНоменклатурыБезНазначения.Характеристика = ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика
| И КлючиНоменклатурыБезНазначения.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиНоменклатурыБезНазначения.МестоХранения = &Подразделение
| И КлючиНоменклатурыБезНазначения.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиНоменклатурыБезНазначения.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПоПолучателю
| ПО КлючиПоПолучателю.Номенклатура = ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура
| И КлючиПоПолучателю.Характеристика = ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика
| И КлючиПоПолучателю.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиПоПолучателю.МестоХранения = ВидыЗапасов.ПодразделениеПолучатель
| И КлючиПоПолучателю.Назначение = ВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение
| И КлючиПоПолучателю.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК КлючиПоПолучателюБезНазначения
| ПО КлючиПоПолучателюБезНазначения.Номенклатура = ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура
| И КлючиПоПолучателюБезНазначения.Характеристика = ВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика
| И КлючиПоПолучателюБезНазначения.Серия = ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
| И КлючиПоПолучателюБезНазначения.МестоХранения = ВидыЗапасов.ПодразделениеПолучатель
| И КлючиПоПолучателюБезНазначения.Назначение = ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
| И КлючиПоПолучателюБезНазначения.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО СпрНоменклатура.Ссылка = ВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлючиАналитикиУчетаНоменклатуры КАК Аналитика
| ПО ВидыЗапасов.АналитикаУчетаНоменклатуры = Аналитика.Ссылка
|
|ГДЕ
| ВидыЗапасов.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| КлючиПоПолучателюБезНазначения.КлючАналитики,
| Аналитика.Назначение,
| Аналитика.Назначение.НаправлениеДеятельности,
| ВидыЗапасов.ВидЗапасов,
| ВидыЗапасов.ВидЗапасовПолучателя,
| ВЫБОР
| КОГДА ЕСТЬNULL(Аналитика.Назначение.ВидДеятельностиНДС,ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка)
| ТОГДА Аналитика.Назначение.ВидДеятельностиНДС
| ИНАЧЕ &ПеремещениеПодДеятельность
| КОНЕЦ,
| Аналитика.Характеристика,
| КлючиНоменклатурыБезНазначения.КлючАналитики,
| Аналитика.Номенклатура,
| Аналитика.Ссылка,
| ВидыЗапасов.ПодразделениеПолучатель,
| КлючиПоПолучателю.КлючАналитики,
| ВидыЗапасов.ИдентификаторСтроки,
| ВЫБОР
| КОГДА &АналитическийУчетПоГруппамПродукции
| И НЕ ВидыЗапасов.ГруппаПродукции = ЗНАЧЕНИЕ(Справочник.ГруппыАналитическогоУчетаНоменклатуры.ПустаяСсылка)
| ТОГДА ВидыЗапасов.ГруппаПродукции
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ВЫБОР
| КОГДА Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
| И Аналитика.Номенклатура.ПрослеживаемыйТовар
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
Функция ТекстЗапросаТаблицаМатериалыИРаботыВПроизводстве(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "МатериалыИРаботыВПроизводстве";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ВтТовары.Номенклатура КАК Номенклатура,
| ВтТовары.Характеристика КАК Характеристика,
| ВтТовары.Назначение КАК Назначение,
| ВтТовары.Количество КАК Количество
|ИЗ
| ВтТовары КАК ВтТовары
|ГДЕ
| НЕ ВтТовары.Номенклатура.ПрослеживаемыйТовар
|
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА &ОрганизацияПолучатель
| ИНАЧЕ &Организация
| КОНЕЦ КАК Организация,
| ВтТовары.ПодразделениеПолучатель КАК Подразделение,
| ВтТовары.Номенклатура КАК Номенклатура,
| ВтТовары.Характеристика КАК Характеристика,
| ВтТовары.Назначение КАК Назначение,
| ВтТовары.Количество КАК Количество
|ИЗ
| ВтТовары КАК ВтТовары
|ГДЕ
| &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
| И НЕ ВтТовары.Номенклатура.ПрослеживаемыйТовар
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаДвиженияНоменклатураНоменклатура(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "ДвиженияНоменклатураНоменклатура";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТовары", ТекстыЗапроса) Тогда
ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтВидыЗапасов", ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Дата КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ВтТовары.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВтТовары.АналитикаНоменклатуры
| ИНАЧЕ ВтТовары.АналитикаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Подразделение КАК Склад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК ТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ВтТовары.Назначение.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВтТовары.АналитикаНоменклатурыПоПолучателю
| ИНАЧЕ ВтТовары.АналитикаНоменклатурыПоПолучателюБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВтТовары.ПодразделениеПолучатель КАК КорСклад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК КорТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ВтТовары.Количество КАК Количество,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА 0
| ИНАЧЕ ВтТовары.Количество
| КОНЕЦ КАК КорКоличество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ВтТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ВтТовары.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ДокументДвижения,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА &ОрганизацияПолучатель
| ИНАЧЕ &Организация
| КОНЕЦ КАК КорОрганизация
|ИЗ
| ВтТовары КАК ВтТовары
|ГДЕ
| &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВнутреннееПоступлениеРабот) КАК ХозяйственнаяОперация,
| &ОрганизацияПолучатель КАК Организация,
| ВтТовары.ПодразделениеПолучатель КАК Подразделение,
| ВтТовары.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВтТовары.АналитикаНоменклатуры
| ИНАЧЕ ВтТовары.АналитикаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Подразделение КАК Склад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК ТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ВтТовары.Назначение.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ВтТовары.АналитикаНоменклатурыПоПолучателю
| ИНАЧЕ ВтТовары.АналитикаНоменклатурыПоПолучателюБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ВтТовары.ПодразделениеПолучатель КАК КорСклад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК КорТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| 0 КАК Количество,
| ВтТовары.Количество КАК КорКоличество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ВтТовары.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ВтТовары.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ДокументДвижения,
| &Организация КАК КорОрганизация
|ИЗ
| ВтТовары КАК ВтТовары
|ГДЕ
| &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Дата КАК Период,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &Организация КАК Организация,
| &Подразделение КАК Подразделение,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Подразделение КАК Склад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК ТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаНоменклатурыПоПолучателю
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаНоменклатурыПоПолучателюБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ПодразделениеПолучатель КАК КорСклад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК КорТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА 0
| ИНАЧЕ ТаблицаВидыЗапасов.Количество
| КОНЕЦ КАК КорКоличество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ДокументДвижения,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА &ОрганизацияПолучатель
| ИНАЧЕ &Организация
| КОНЕЦ КАК КорОрганизация
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
| И ТаблицаВидыЗапасов.ЭтоПрослеживаемаяРабота
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &Дата КАК Период,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВнутреннееПоступлениеРабот) КАК ХозяйственнаяОперация,
| &ОрганизацияПолучатель КАК Организация,
| ТаблицаВидыЗапасов.ПодразделениеПолучатель КАК Подразделение,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаНоменклатуры
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаНоменклатурыБезНазначения
| КОНЕЦ КАК АналитикаУчетаНоменклатуры,
| &Подразделение КАК Склад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК ТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.НаправлениеДеятельности КАК КорНаправлениеДеятельности,
| ВЫБОР
| КОГДА &УчитыватьСебестоимостьТоваровПоНазначениям
| ТОГДА ТаблицаВидыЗапасов.АналитикаНоменклатурыПоПолучателю
| ИНАЧЕ ТаблицаВидыЗапасов.АналитикаНоменклатурыПоПолучателюБезНазначения
| КОНЕЦ КАК КорАналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ПодразделениеПолучатель КАК КорСклад,
| ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.Товар) КАК КорТипЗапасов,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
| 0 КАК Количество,
| ТаблицаВидыЗапасов.Количество КАК КорКоличество,
| 0 КАК Стоимость,
| 0 КАК СтоимостьБезНДС,
| 0 КАК СтоимостьРегл,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК ИсточникГФУНоменклатуры,
| ВЫБОР
| КОГДА &ФормироватьВидыЗапасовПоГруппамФинансовогоУчета
| ТОГДА ЗНАЧЕНИЕ(Справочник.ВидыЗапасов.ПустаяСсылка)
| ИНАЧЕ ТаблицаВидыЗапасов.Номенклатура
| КОНЕЦ КАК КорИсточникГФУНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ДокументДвижения,
| &Организация КАК КорОрганизация
|ИЗ
| ВтВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| &Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
| И &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| И ТаблицаВидыЗапасов.ЭтоПрослеживаемаяРабота
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтПодразделения", ТекстыЗапроса) Тогда
ТекстЗапросаВтПодразделения(Запрос, ТекстыЗапроса);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| &Дата КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| Подразделения.Организация КАК Организация,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| Подразделения.МестоХранения КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Комментарий КАК Комментарий,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| Подразделения.ДополнительнаяЗапись КАК ДополнительнаяЗапись,
| &Дата КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| Подразделения.МестоХранения КАК МестоХранения,
| &Исправление КАК СторноИсправление,
| &СторнируемыйДокумент КАК СторнируемыйДокумент,
| &ИсправляемыйДокумент КАК ИсправляемыйДокумент,
| &Дата КАК ДатаОтраженияВУчете,
| &Статус КАК Статус
|ИЗ
| ВтПодразделения КАК Подразделения
|
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктВыполненныхВнутреннихРабот КАК ДанныеДокумента
| ПО Подразделения.Ссылка = ДанныеДокумента.Ссылка
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаТаблицаТоварыОрганизаций(Запрос, ТекстыЗапроса, Регистры, ДокументСсылка)
ИмяРегистра = "ТоварыОрганизаций";
Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
Если Не ПроведениеДокументов.ЕстьТаблицаЗапроса("ВтТоварыОрганизаций", ТекстыЗапроса) Тогда
ТекстЗапросаВтТоварыОрганизаций(Запрос, ТекстыЗапроса, ДокументСсылка);
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| втТоварыОрганизаций.ВидДвижения КАК ВидДвижения,
| втТоварыОрганизаций.Период КАК Период,
| втТоварыОрганизаций.ОрганизацияОтгрузки КАК ОрганизацияОтгрузки,
| втТоварыОрганизаций.Организация КАК Организация,
| втТоварыОрганизаций.ВидЗапасов КАК ВидЗапасов,
| втТоварыОрганизаций.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| втТоварыОрганизаций.Номенклатура КАК Номенклатура,
| втТоварыОрганизаций.Характеристика КАК Характеристика,
| втТоварыОрганизаций.НомерГТД КАК НомерГТД,
| втТоварыОрганизаций.Количество КАК Количество,
| втТоварыОрганизаций.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| втТоварыОрганизаций.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| втТоварыОрганизаций.НалогообложениеНДС КАК НалогообложениеНДС,
| втТоварыОрганизаций.КорАналитикаУчетаНоменклатуры КАК КорАналитикаУчетаНоменклатуры,
| втТоварыОрганизаций.КорВидЗапасов КАК КорВидЗапасов
|ИЗ
| втТоварыОрганизаций КАК втТоварыОрганизаций
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВтТоварыОрганизаций(Запрос, ТекстыЗапроса, ДокументОбъект)
ИмяТаблицы = "ВтТоварыОрганизаций";
ТекстЗапроса =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК ОрганизацияОтгрузки,
| &Организация КАК Организация,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов
|ПОМЕСТИТЬ втТоварыОрганизаций
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот.ВидыЗапасов КАК ТаблицаВидыЗапасов
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| &Период КАК Период,
| &Организация КАК ОрганизацияОтгрузки,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуПодразделениями)
| ТОГДА
| &Организация
| ИНАЧЕ
| &ОрганизацияПолучатель
| КОНЕЦ КАК Организация,
| ВЫБОР
| КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуПодразделениями)
| ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасов
| ИНАЧЕ
| ТаблицаВидыЗапасов.ВидЗапасовПолучателя
| КОНЕЦ КАК ВидЗапасов,
| ЕСТЬNULL(АналитикаПодразделенияПолучателя.КлючАналитики, НЕОПРЕДЕЛЕНО) КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаВидыЗапасов.НомерГТД КАК НомерГТД,
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
| &ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК НалогообложениеНДС,
| НЕОПРЕДЕЛЕНО КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот.ВидыЗапасов КАК ТаблицаВидыЗапасов
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаПодразделенияПолучателя
| ПО ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Номенклатура = АналитикаПодразделенияПолучателя.Номенклатура
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Характеристика = АналитикаПодразделенияПолучателя.Характеристика
| И ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка) = АналитикаПодразделенияПолучателя.Серия
| И ТаблицаВидыЗапасов.АналитикаУчетаНоменклатуры.Назначение = АналитикаПодразделенияПолучателя.Назначение
| И ТаблицаВидыЗапасов.ПодразделениеПолучатель = АналитикаПодразделенияПолучателя.МестоХранения
| И ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка) = АналитикаПодразделенияПолучателя.СтатьяКалькуляции
|ГДЕ
| ТаблицаВидыЗапасов.Ссылка = &Ссылка
| И ТаблицаВидыЗапасов.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяТаблицы);
Возврат ТекстЗапроса;
КонецФункции
Процедура ОтразитьРаспределениеЗапасовДвижения(Запрос, ТекстыЗапроса, Регистры)
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Ссылка.Подразделение КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| НЕОПРЕДЕЛЕНО КАК ЗапланированныйРасходРаспределенногоЗапаса,
| ЛОЖЬ КАК КонтрольСвободногоОстатка
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК ТабЧасть
|";
РаспределениеЗапасовДвижения.РасходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть);
ТекстЗапросаТабЧасть =
"ВЫБРАТЬ
| ТабЧасть.Ссылка КАК Ссылка,
| ТабЧасть.Ссылка.Дата КАК Период,
| ТабЧасть.Номенклатура КАК Номенклатура,
| ТабЧасть.Характеристика КАК Характеристика,
| ТабЧасть.Подразделение КАК Склад,
| ТабЧасть.Назначение КАК Назначение,
| ТабЧасть.Количество КАК Количество,
| ЛОЖЬ КАК ПоГрафику,
| НЕОПРЕДЕЛЕНО КАК РаспоряжениеВГрафике
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот.Товары КАК ТабЧасть
|ГДЕ
| ТабЧасть.Ссылка.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
|";
РаспределениеЗапасовДвижения.ПриходЗапаса(Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаТабЧасть, Неопределено, Ложь);
КонецПроцедуры
#Область ПартионныйУчет
Функция ОписаниеРегистровУчетаЗатратИСебестоимости(Документ) Экспорт
ОписаниеРегистров = Новый Массив;
ОписаниеРегистров.Добавить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
Возврат ОписаниеРегистров;
КонецФункции
Функция УстановитьДополнительныеПараметрыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено) Экспорт
ДополнительныеПараметры = Новый Массив;
Если Запрос <> Неопределено Тогда
КонецЕсли;
Возврат ДополнительныеПараметры;
КонецФункции
Функция СформироватьДополнительныеТаблицыОперацийУчетаЗатратИСебестоимости(Документ, Запрос = Неопределено, ТекстыЗапроса = Неопределено) Экспорт
ДополнительныеТаблицы = Новый Массив;
ДополнительныеТаблицы.Добавить("ВтТовары");
ДополнительныеТаблицы.Добавить("ВтВидыЗапасов");
Если Запрос <> Неопределено Тогда
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[0], ТекстыЗапроса) Тогда
ТекстЗапросаВтТовары(Запрос, ТекстыЗапроса);
КонецЕсли;
Если НЕ ПроведениеДокументов.ЕстьТаблицаЗапроса(ДополнительныеТаблицы[1], ТекстыЗапроса) Тогда
ТекстЗапросаВтВидыЗапасов(Запрос, ТекстыЗапроса);
КонецЕсли;
КонецЕсли;
Возврат ДополнительныеТаблицы;
КонецФункции
Функция ОписаниеОперацийУчетаСебестоимости(Документ) Экспорт
ОписаниеОпераций = Новый Массив;
#Область Перемещение_Товар
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ПеремещениеПодДеятельность КАК ВидДеятельностиНДСДокумента,
|
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА ТаблицаДокумента.ОрганизацияПолучатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаНоменклатурыПоПолучателю КАК КорАналитикаУчетаНоменклатуры,
| НЕОПРЕДЕЛЕНО КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ВЫБОР КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА ТаблицаВидыЗапасов.ПодразделениеПолучатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ТаблицаВидыЗапасов.ГруппаПродукции КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТовары КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
| И НЕ ТаблицаВидыЗапасов.Номенклатура.ПрослеживаемыйТовар
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
#КонецОбласти
#Область Перемещение_ПрослеживаемыеРаботы
ТекстЗапроса =
"ВЫБРАТЬ
| ТаблицаДокумента.Дата КАК Период,
| ТаблицаДокумента.Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК КорректируемыйДокумент,
|
| ТаблицаДокумента.Организация КАК Организация,
| ТаблицаВидыЗапасов.АналитикаНоменклатуры КАК АналитикаУчетаНоменклатуры,
| ТаблицаВидыЗапасов.ВидЗапасов КАК ВидЗапасов,
| ТаблицаВидыЗапасов.ВидДеятельностиНДС КАК ВидДеятельностиНДС,
| ТаблицаДокумента.ПеремещениеПодДеятельность КАК ВидДеятельностиНДСДокумента,
|
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА ТаблицаДокумента.ОрганизацияПолучатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК КорОрганизация,
| НЕОПРЕДЕЛЕНО КАК КорПартия,
| ТаблицаВидыЗапасов.АналитикаНоменклатурыПоПолучателю КАК КорАналитикаУчетаНоменклатуры,
| ВЫБОР
| КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА
| ТаблицаВидыЗапасов.ВидЗапасовПолучателя
| ИНАЧЕ
| ТаблицаВидыЗапасов.ВидЗапасов
| КОНЕЦ КАК КорВидЗапасов,
|
| НЕОПРЕДЕЛЕНО КАК Сделка,
| ВЫБОР КОГДА ТаблицаДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами)
| ТОГДА ТаблицаВидыЗапасов.ПодразделениеПолучатель
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК Подразделение,
| ТаблицаДокумента.Ответственный КАК Менеджер,
| ТаблицаВидыЗапасов.ГруппаПродукции КАК ГруппаПродукции,
|
| ТаблицаВидыЗапасов.Количество КАК Количество,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторСтроки,
|
| ТаблицаДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ТаблицаВидыЗапасов.ИдентификаторСтроки КАК ИдентификаторФинЗаписи,
| &НастройкаХозяйственнойОперации КАК НастройкаХозяйственнойОперации
|
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот КАК ТаблицаДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтВидыЗапасов КАК ТаблицаВидыЗапасов
| ПО ИСТИНА
|ГДЕ
| ТаблицаДокумента.Ссылка В (&Ссылка)
| И ТаблицаДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.Принят)
| И ТаблицаВидыЗапасов.Номенклатура.ПрослеживаемыйТовар
|";
РасчетСебестоимостиПроведениеДокументов.ДобавитьОписаниеОперацииДляОтраженияВУчетеСебестоимости(
ОписаниеОпераций,
Перечисления.ОперацииУчетаСебестоимости.Перемещение,
ТекстЗапроса);
#КонецОбласти
Возврат ОписаниеОпераций;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецОбласти
#Область Прочее
Функция ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности(Форма) Экспорт
ПорядокОбработкиДокумента = НаправленияДеятельностиСервер.ПорядокОбработкиДокументаПриИзмененииНаправленияДеятельности();
ПорядокОбработкиДокумента.ИменаТабличныхЧастейДляОчисткиНекорректныхНазначений = "Товары";
ТаблицаУсловий = НаправленияДеятельностиСервер.УсловияОбработкиНазначенийВСтроках("ТипНоменклатуры");
ПорядокОбработкиДокумента.УсловияОбработкиСтрок.Вставить("Товары", ТаблицаУсловий);
Возврат ПорядокОбработкиДокумента;
КонецФункции
Функция СписокОпераций() Экспорт
СписокОпераций = Новый СписокЗначений;
ВыполнениеРабот = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуПодразделениями");
ВыполнениеРаботМеждуФилиалами = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПриемПередачаРаботМеждуФилиалами");
СписокОпераций.Добавить(ВыполнениеРабот, НСтр("ru = 'Прием-передача между подразделениями'"));
Если ПолучитьФункциональнуюОпцию("ИспользоватьОбособленныеПодразделенияВыделенныеНаБаланс") Тогда
СписокОпераций.Добавить(ВыполнениеРаботМеждуФилиалами, НСтр("ru = 'Прием-передача между филиалами'"));
КонецЕсли;
Возврат СписокОпераций;
КонецФункции
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Процедура = "Документы.АктВыполненныхВнутреннихРабот.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.Версия = "2.5.23.18";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("7344728c-a805-4938-a7d4-52a2ec44bcee");
Обработчик.Многопоточный = Истина;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.АктВыполненныхВнутреннихРабот.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Некритичный;
СписокОписаний = Новый Массив;
СписокОписаний.Добавить(НСтр("ru = 'Обновление документов ""Акт выполненных внутренних работ"":'"));
СписокОписаний.Добавить(НСтр("ru = '- заполняет реквизит ""Статус"" значением ""Принят"".'"));
Обработчик.Комментарий = СтрСоединить(СписокОписаний, Символы.ПС);
Читаемые = Новый Массив;
Читаемые.Добавить(Метаданные.Документы.АктВыполненныхВнутреннихРабот.ПолноеИмя());
Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ",");
Изменяемые = Новый Массив;
Изменяемые.Добавить(Метаданные.Документы.АктВыполненныхВнутреннихРабот.ПолноеИмя());
Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
Блокируемые = Новый Массив;
Блокируемые.Добавить(Метаданные.Документы.АктВыполненныхВнутреннихРабот.ПолноеИмя());
Обработчик.БлокируемыеОбъекты = СтрСоединить(Блокируемые, ",");
КонецПроцедуры
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ПараметрыВыборки = Параметры.ПараметрыВыборки;
ПараметрыВыборки.ПолныеИменаОбъектов = "Документ.АктВыполненныхВнутреннихРабот";
ПараметрыВыборки.ПоляУпорядочиванияПриРаботеПользователей.Добавить("Дата УБЫВ");
ПараметрыВыборки.ПоляУпорядочиванияПриОбработкеДанных.Добавить("Дата УБЫВ");
ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеквизитыДокумента.Ссылка КАК Ссылка
|ИЗ
| Документ.АктВыполненныхВнутреннихРабот КАК РеквизитыДокумента
|ГДЕ
| РеквизитыДокумента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыАктовВыполненныхВнутреннихРабот.ПустаяСсылка)
|";
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ПолноеИмяОбъекта = "Документ.АктВыполненныхВнутреннихРабот";
ОбновляемыеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры);
Если ОбновляемыеДанные.Количество() = 0 Тогда
Параметры.ОбработкаЗавершена =
ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта);
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОбновляемыеДанные.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ОбновляемыеДанные
|ИЗ
| &ОбновляемыеДанные КАК ОбновляемыеДанные
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|
|ВЫБРАТЬ
| ОбновляемыеДанные.Ссылка КАК Ссылка,
| РеквизитыДокумента.ВерсияДанных КАК ВерсияДанных
|ИЗ
| ОбновляемыеДанные КАК ОбновляемыеДанные
|
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктВыполненныхВнутреннихРабот КАК РеквизитыДокумента
| ПО ОбновляемыеДанные.Ссылка = РеквизитыДокумента.Ссылка
|";
Запрос.УстановитьПараметр("ОбновляемыеДанные", ОбновляемыеДанные);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПричинаИсключения = 0;
НачатьТранзакцию();
Попытка
ПричинаИсключения = 1;
Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить(ПолноеИмяОбъекта).УстановитьЗначение("Ссылка", Выборка.Ссылка);
Блокировка.Заблокировать();
ДокументОбъект = ОбновлениеИнформационнойБазыУТ.ПроверитьПолучитьОбъект(Выборка.Ссылка, Выборка.ВерсияДанных, Параметры.Очередь);
ОбъектИзменен = Ложь;
Если ДокументОбъект <> Неопределено Тогда
ДокументОбъект.Статус = Перечисления.СтатусыАктовВыполненныхВнутреннихРабот.Принят;
ОбъектИзменен = Истина;
КонецЕсли;
ПричинаИсключения = 2;
Если ОбъектИзменен Тогда
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ДокументОбъект);
Иначе
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ОбновлениеИнформационнойБазыУТ.СообщитьОНеудачнойОбработке(ИнформацияОбОшибке(), Выборка.Ссылка);
Если ПричинаИсключения = 2 Тогда
ВызватьИсключение НСтр("ru = 'Не удалось обработать обновление документов ""Акт выполненных внутренних работ"".'");
КонецЕсли;
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли