[CODE]
// Если в таблице остатков нет такого ингредиента, то добавим
Если НЕ СтрокаОстатков=Неопределено Тогда
ИначеЕсли НЕ ЗначениеЗаполнено(СтрокаПроизводства.СчетУчета) Тогда
Сообщить("Не заполнен счет учета для ингредиента " + СтрокаПроизводства.Ингредиент + ", блюдо " + СтрокаПроизводства.Номенклатура + ".";);
// Добавим строку остатков, чтоб не повторяться.
СтрокаОстатков = ТаблицаОстатков.Добавить();
СтрокаОстатков.Ингредиент = СтрокаПроизводства.Ингредиент;
СтрокаОстатков.Количество = 0;
Иначе
СтрокаОстатков = ТаблицаОстатков.Добавить();
СтрокаОстатков.Ингредиент = СтрокаПроизводства.Ингредиент;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Счет", СтрокаПроизводства.СчетУчета);
НомерСубконтоНоменклатура = ОбщепитОбщегоНазначения.ПолучитьНомерСубконто(СтрокаПроизводства.СчетУчета, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
Если НомерСубконтоНоменклатура И ЗначениеЗаполнено(СтрокаПроизводства.Ингредиент)Тогда
СтруктураОтбора.Вставить("Субконто" + НомерСубконтоНоменклатура, СтрокаПроизводства.Ингредиент);
КонецЕсли;
НомерСубконтоСклад = ОбщепитОбщегоНазначения.ПолучитьНомерСубконто(СтрокаПроизводства.СчетУчета, ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
Если НомерСубконтоСклад И ЗначениеЗаполнено(Склад)Тогда
СтруктураОтбора.Вставить("Субконто" + НомерСубконтоСклад, Склад);
КонецЕсли;
// Установим фильтр по организации
Если ЗначениеЗаполнено(Организация) Тогда
СтруктураОтбора.Вставить("Организация",Организация);
КонецЕсли;
Если РежимЗаписиПроведение=Истина Тогда
УстановитьУправляемуюБлокировкуНаОстаткиНоменклатуры(МоментВремени.Дата,СтрокаПроизводства.СчетУчета,Организация,?(НомерСубконтоСклад,Склад,0),СтрокаПроизводства.Ингредиент);
КонецЕсли;
// Посмотрим на остатки на регистре бухгалтерии
СтрокаОстатков.Количество = РегистрОстатков.Остатки(МоментВремени,,СтруктураОтбора,"","Количество";)Ύ].КоличествоОстатокДт;
Если СтрокаОстатков.Количество < 0 Тогда
СтрокаОстатков.Количество = 0;
КонецЕсли;
КонецЕсли;
[/CODE]