Группа: Пользователи
Сообщений: 63
Спасибо сказали: 2 раз
Рейтинг: 0
УПП 1.3 РАУЗ, ФИФО. 1С8.3.10
Пытаюсь сделать копию документа ОприходованиеТоваров.
Задача примерно вот такая - ОприходованиеТоваров позиционировать как "Оприходование сырья и материалов" со всеми его стандартными проводками. Сделавши с него копию присвоить имя "Оприходование готовой продукции такго-то цеха" со всеми его стандартными проводками, но добавить туда еще несколько полей, и движений по регистрам. Скопировал. Система его обозвала "ОприходованиеТоваров1" имя не критично, пусть его хоть макаками назовет. Строки, заполнение, основания и движения по регистрам работают кроме регистров УчетЗатратРегл и Хозрасчетный.
Пробовал победить данную ситуацию путем конструктора движений... Все уже догадались чем закончилось... Регистры ТоварыНаСкладах и все остальные регистры нормально. Учета затрат и проводок нет.
Когда все счета указываеш вручную, он при проведения документа пишет "невозможно сформировать проводки ТМЦ"
Крик души!!! ПОМОГИТЕ...
Ту же процедуру придется сделать с еще кучей документов... Я в замешательстве!
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 321 раз
Рейтинг: 0
Lexveritas @ Сегодня, 14:11
, Смотрите отладчиком где формируются проводки и почему у вас они не получаются, раз вам выдает ругательство
Цитата
невозможно сформировать проводки ТМЦ
, то посмотрите где в коде есть такое сообщение и отладчиком гляньте по каким условиям Вы туда попадаете. А так телепатически вам вряд ли кто-то поможет, нужно как минимум видеть код, как максимум иметь возможность отладки =)
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
//////////////////////////////////////////////////////////////////////////////// // ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДОКУМЕНТА
#Если Клиент Тогда
// Функция печатает ценники. // Функция ПечатьЦенников()
Запрос = Новый Запрос(" |ВЫБРАТЬ РАЗЛИЧНЫЕ | ИСТИНА КАК Печать, | Док.НомерСтроки, | Док.Номенклатура КАК Номенклатура, | Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | Док.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения, | Док.ЦенаВРознице КАК Цена, | 1 КАК Количество |ИЗ | Документ.ОприходованиеТоваров.Товары КАК Док |ГДЕ | Док.Ссылка = &Док |УПОРЯДОЧИТЬ ПО | Док.НомерСтроки |");
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
Запрос.Текст = "ВЫБРАТЬ | 1 КАК Порядок, | НомерСтроки КАК НомерСтрокиТЧ, | Номенклатура, | Номенклатура."+ ТекстКодАртикул + " КАК КодАртикул, | ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар, | КоличествоМест, | Количество, | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ЕдиницаИзмеренияМест.Представление КАК ЕдиницаИзмеренияМест, | ВЫБОР КОГДА Количество = 0 ТОГДА СуммаРегл ИНАЧЕ СуммаРегл/Количество КОНЕЦ КАК Цена, | СуммаРегл КАК Сумма, | ХарактеристикаНоменклатуры КАК Характеристика, | СерияНоменклатуры КАК Серия | |ИЗ | Документ.ОприходованиеТоваров.Товары КАК ОприходованиеТоваров |ГДЕ | ОприходованиеТоваров.Ссылка = &ТекущийДокумент | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | 2, | НомерСтроки, | Номенклатура, | Номенклатура."+ ТекстКодАртикул + ", | ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК СТРОКА(1000)), | КоличествоМест, | Количество, | ЕдиницаИзмерения.Представление, | ЕдиницаИзмеренияМест.Представление, | ВЫБОР КОГДА Количество = 0 ТОГДА СуммаРегл ИНАЧЕ СуммаРегл/Количество КОНЕЦ, | СуммаРегл, | Null, | Null | |ИЗ | Документ.ОприходованиеТоваров.БланкиСтрогогоУчета КАК ОприходованиеБСУ |ГДЕ | ОприходованиеБСУ.Ссылка = &ТекущийДокумент | |УПОРЯДОЧИТЬ ПО | Порядок, | НомерСтрокиТЧ |";
ЗапросТовары = Запрос.Выполнить().Выгрузить();
ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОприходованиеТоваров_Накладная"; Макет = ПолучитьМакет("Накладная");
// печать производится на языке, указанном в настройках пользователя КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм")); Макет.КодЯзыкаМакета = КодЯзыкаПечать;
// Вывести табличную часть ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки); Если ВыводитьКоды Тогда ОбластьМакета.Параметры.Колонка = Колонка; КонецЕсли;
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли;
Если МестВсего = 0 Тогда УниверсальныеМеханизмы.СкрытьКолонкиВТабличномДокументе(ТабДокумент, НСтр("ru='Мест';uk='Місць'", КодЯзыкаПечать), 6, ОбластьШапки); КонецЕсли;
Возврат ТабДокумент;
КонецФункции // ПечатьОприходованияТоваров()
// Процедура осуществляет печать документа. Можно направить печать на // экран или принтер, а также распечатать необходимое количество копий. // // Название макета печати передается в качестве параметра, // по переданному названию находим имя макета в соответствии. // // Параметры: // НазваниеМакета - строка, название макета. // Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
Если ЭтоНовый() Тогда Предупреждение("Документ можно распечатать только после его записи"); Возврат; ИначеЕсли Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(Проведен) Тогда Предупреждение("Недостаточно полномочий для печати непроведенного документа!"); Возврат; КонецЕсли;
Если Не РаботаСДиалогами.ПроверитьМодифицированность(ЭтотОбъект) Тогда Возврат; КонецЕсли;
Если ИмяМакета = "Ведомость" Тогда // Получить экземпляр документа на печать ТабДокумент = ПечатьОприходованияТоваров(); ИначеЕсли ИмяМакета = "Ценники" Тогда ТабДокумент = ПечатьЦенников(); ИначеЕсли ИмяМакета = "СерийныеНомера" Тогда
// Возвращает доступные варианты печати документа // // Возвращаемое значение: // Структура, каждая строка которой соответствует одному из вариантов печати // Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
СтруктураМакетов = Новый Структура("Ведомость", "Накладная на оприходование товаров"); СтруктураМакетов.Вставить("Ценники", "Ценники на товары"); СтруктураМакетов.Вставить("СерийныеНомера", "Список серийных номеров");
Возврат СтруктураМакетов;
КонецФункции // ПолучитьСтруктуруПечатныхФорм()
// Процедура выполняет заполниение табличной части по инвентаризации Товаров. // // Параметры: // ДокументОснование - ссылка на документ основание (инвентаризация Товаров). // Процедура ЗаполнитьТоварыПоИнвентаризацииТоваровУпр(ДокументОснование) Экспорт
#Если ВнешнееСоединение Тогда Если Товары.Количество() > 0 Тогда Товары.Очистить(); КонецЕсли; #КонецЕсли
// Заполняем выявленными излишками по инвентраизации, с учетом уже выполненного оприходования // по данной инвентаризации. Цены берем из документа инвентраизации. // Если розница – заполняем розничную цену. Запрос.Текст = "ВЫБРАТЬ | Док.Номенклатура, | Док.Номенклатура.ВидНоменклатуры.БланкСтрогогоУчета КАК БСУ, | Док.ЕдиницаИзмерения, | Док.ЕдиницаИзмеренияМест, | Док.Качество, | Док.Коэффициент КАК КоэффициентЕдиницыИнвентаризации, | МАКСИМУМ(Док.Количество - Док.КоличествоУчет) КАК КоличествоОтклонениеИнвентаризации, | СУММА(ВЫБОР | КОГДА ДокОприходование.Количество ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ДокОприходование.Количество | КОНЕЦ) КАК КоличествоОприходованное, | Док.Цена, | ВЫБОР | КОГДА &НТТ | ТОГДА Док.ЦенаВРознице | ИНАЧЕ 0 | КОНЕЦ КАК ЦенаВРознице, | Док.ХарактеристикаНоменклатуры, | Док.СерияНоменклатуры, | МИНИМУМ(Док.НомерСтроки) КАК НомерСтроки |ИЗ | Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК Док | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОприходованиеТоваров.Товары КАК ДокОприходование | ПО Док.Номенклатура = ДокОприходование.Номенклатура | И Док.ХарактеристикаНоменклатуры = ДокОприходование.ХарактеристикаНоменклатуры | И Док.СерияНоменклатуры = ДокОприходование.СерияНоменклатуры | И Док.Ссылка.Склад = ДокОприходование.Ссылка.Склад | И (ДокОприходование.Ссылка.ИнвентаризацияТоваровНаСкладе = &ДокументОснованиеСсылка) | И (ДокОприходование.Ссылка.Проведен) | И (ДокОприходование.Ссылка <> &ДокументСсылка) | И (ДокОприходование.ЦенаВРознице = Док.ЦенаВРознице) |ГДЕ | Док.Ссылка = &ДокументОснованиеСсылка | И Док.Количество - Док.КоличествоУчет > 0 | |СГРУППИРОВАТЬ ПО | Док.Номенклатура, | Док.Качество, | Док.ХарактеристикаНоменклатуры, | Док.СерияНоменклатуры, | Док.ЕдиницаИзмерения, | Док.ЕдиницаИзмеренияМест, | Док.Коэффициент, | Док.Цена, | Док.ЦенаВРознице | |УПОРЯДОЧИТЬ ПО | НомерСтроки";
РезультатЗапроса = Запрос.Выполнить();
Склад = ДокументОснование.Склад;
Выборка = РезультатЗапроса.Выбрать();
СтрокиДобавлены = Ложь; Пока Выборка.Следующий() Цикл
КоличествоОприходовать = Выборка.КоличествоОтклонениеИнвентаризации - Выборка.КоличествоОприходованное; Если КоличествоОприходовать <= 0 Тогда Продолжить; КонецЕсли;
Если Выборка.Номенклатура.ВидВоспроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Производство Тогда СтрокаТабличнойЧасти.СтатусПартии = Перечисления.СтатусыПартийТоваров.Продукция; Иначе СтрокаТабличнойЧасти.СтатусПартии = Перечисления.СтатусыПартийТоваров.Купленный; КонецЕсли;
//номинальные реквизиты необходимо вычислять только после подсчета суммы Если Выборка.БСУ Тогда СтрокаТабличнойЧасти.ЦенаНоминальная = ОбработкаТабличныхЧастей.БСУПолучитьЦенуНоминальную(СтрокаТабличнойЧасти.Номенклатура, Дата); ОбработкаТабличныхЧастей.БСУРассчитатьНоминальныеРеквизитыТЧ(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; // Выборка.БСУ
КонецЦикла; #Если Клиент Тогда
Если ( (НЕ Товары.Количество()) И (НЕ БланкиСтрогогоУчета.Количество()) ) Тогда Сообщить("В документе """ + ДокументОснование.Метаданные().Представление() + """ № " + ДокументОснование.Номер +" отсутствуют товары фактическое количество которых превышает учетное."); КонецЕсли;
//////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ ОБЕСПЕЧЕНИЯ ПРОВЕДЕНИЯ ДОКУМЕНТА
// Выгружает результат запроса в табличную часть, добавляет ей необходимые колонки для проведения. // // Параметры: // РезультатЗапросаПоТоварам - результат запроса по табличной части "Товары", // СтруктураШапкиДокумента - выборка по результату запроса по шапке документа. // // Возвращаемое значение: // Сформированная таблица значений. // Функция ПодготовитьТаблицуТоваров(РезультатЗапросаПоТоварам, СтруктураШапкиДокумента)
// Переименуем колонку "Сумма" в "Стоимость" (как в регистрах). ТаблицаБланков.Колонки.Сумма.Имя = "Стоимость";
Для каждого Строка Из ТаблицаБланков Цикл Если Строка.ВидНалоговойДеятельности = Справочники.ВидыНалоговойДеятельности.НеОблагаемая Тогда Строка.ДляХозяйственнойДеятельности = Ложь; Иначе Строка.ДляХозяйственнойДеятельности = Истина; КонецЕсли; КонецЦикла;
// Выгружает результат запроса в табличную часть, добавляет ей необходимые колонки для проведения. // // Параметры: // РезультатЗапросаПоТаре - результат запроса по табличной части "ВозвратнаяТара", // СтруктураШапкиДокумента - выборка по результату запроса по шапке документа. // // Возвращаемое значение: // Сформированная таблица значений. // // Проверяет правильность заполнения шапки документа. // Если какой-то из реквизитов шапки, влияющий на проведение не заполнен или // заполнен не корректно, то выставляется флаг отказа в проведении. // Проверяется также правильность заполнения реквизитов ссылочных полей документа. // Проверка выполняется по объекту и по выборке из результата запроса по шапке. // // Параметры: // СтруктураШапкиДокумента - выборка из результата запроса по шапке документа, // Отказ - флаг отказа в проведении, // Заголовок - строка, заголовок сообщения об ошибке проведения. // Процедура ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок)
// Укажем, что надо проверить: СтруктураОбязательныхПолей = Новый Структура("ВидОперации, Организация, Склад");
// Теперь вызовем общую процедуру проверки. ЗаполнениеДокументов.ПроверитьЗаполнениеШапкиДокумента(ЭтотОбъект, СтруктураОбязательныхПолей, Отказ, Заголовок);
НалоговыйУчет.ПроверитьЗаполнениеНалоговыхНазначений( СтруктураШапкиДокумента, Неопределено, // Неопределено - в случае проверки шапки документа Неопределено, // Неопределено - в случае проверки шапки документа Отказ, Заголовок, "ОтражениеЗатрат", // ВидОперации Истина, // ОтражатьПоЗатратам, "СчетКт", // ИмяРеквизитаСчетЗатрат "СубконтоКт" // ИмяРеквизитаСубконтоЗатрат );
Если НЕ СтруктураШапкиДокумента.ОтражатьВУправленческомУчете Тогда СтруктураОбязательныхПолей.Удалить("Сумма"); КонецЕсли;
Если СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.НТТ И Не мРазрешитьНулевыеЦеныВРознице Тогда СтруктураОбязательныхПолей.Вставить("ЦенаВРознице"); КонецЕсли;
// Теперь вызовем общую процедуру проверки. ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "Товары", СтруктураОбязательныхПолей, Отказ, Заголовок);
// Здесь услуг быть не должно. УправлениеЗапасами.ПроверитьЧтоНетУслуг(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);
// Здесь наборов быть не должно. УправлениеЗапасами.ПроверитьЧтоНетНаборов(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);
// Здесь комплектов быть не должно. УправлениеЗапасами.ПроверитьЧтоНетКомплектов(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);
// Здесь бланков строгого учета быть не должно. УправлениеЗапасами.ПроверитьЧтоНетБланковСтрогогоУчета(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);
// Проверяет правильность заполнения строк табличной части "БланкиСтрогогоУчета". // // Параметры: // Параметры: // ТаблицаПоБланкам - таблица значений, содержащая данные для проведения и проверки ТЧ БланкиСтрогогоУчета // СтруктураШапкиДокумента - выборка из результата запроса по шапке документа, // Отказ - флаг отказа в проведении. // Заголовок - строка, заголовок сообщения об ошибке проведения. // Процедура ПроверитьЗаполнениеТабличнойЧастиБланкиСтрогогоУчета(ТаблицаПоБланкам, СтруктураШапкиДокумента, Отказ, Заголовок)
ИмяТабличнойЧасти = "БланкиСтрогогоУчета";
СтруктураОбязательныхПолей = Новый Структура("Номенклатура, Качество, Количество, ЕдиницаИзмерения");
СтруктураОбязательныхПолей.Вставить("Сумма");
Если НЕ ОтражатьВУправленческомУчете Тогда СтруктураОбязательныхПолей.Удалить("Сумма"); КонецЕсли;
Если ОтражатьВБухгалтерскомУчете Тогда СтруктураОбязательныхПолей.Вставить("СуммаРегл"); СтруктураОбязательныхПолей.Вставить("СуммаНоминальная"); СтруктураОбязательныхПолей.Вставить("СчетУчетаБУ"); СтруктураОбязательныхПолей.Вставить("СчетУчетаЗабалансовыйБУ"); КонецЕсли;
// Теперь вызовем общую процедуру проверки. ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "БланкиСтрогогоУчета", СтруктураОбязательныхПолей, Отказ, Заголовок); УправлениеЗапасами.ПроверитьЧтоНетНЕБланковСтрогогоУчета(ЭтотОбъект, "БланкиСтрогогоУчета", ТаблицаПоБланкам, Отказ, Заголовок);
Если ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.ТоварыПродукция ИЛИ ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.БланкиСтрогогоУчета Тогда
Если СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете Тогда СтруктураОбязательныхПолей.Вставить("СуммаРегл"); КонецЕсли;
Если ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.ТоварыПродукция ИЛИ ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.БланкиСтрогогоУчета Тогда
// При оприходовании товаров, в отличие от оборудования должен быть указан конкретный вид налоговой деятельности. СтруктураПараметровПроверки = Новый Структура("ПроверятьРаспределяемую"); НалоговыйУчет.ПроверитьТабличнуюЧастьНаРазрешенныеВидыНалоговойДеятельности(ЭтотОбъект, "Товары", , ТаблицаПоТоварам, СтруктураПараметровПроверки, СтруктураШапкиДокумента, Отказ, Заголовок); КонецЕсли;
КонецПроцедуры
// Проводит табличные части "Товары" по регистрам // // Параметры: // ТаблицаПоТоварам - таблица значений, содержащая данные для проведения и проверки ТЧ Товары // ТаблицаПоТаре - таблица значений, содержащая данные для проведения и проверки ТЧ "Возвратная тара", // Отказ - флаг отказа в проведении, // Заголовок - строка, заголовок сообщения об ошибке проведения. // Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, Отказ, Заголовок)
Если Не СтруктураШапкиДокумента.ВестиУчетТоваровОрганизацийВРазрезеСкладов Тогда ТаблицаДвижений.ЗаполнитьЗначения(Неопределено, "Склад"); Иначе ТаблицаДвижений.ЗаполнитьЗначения(Склад, "Склад"); КонецЕсли;
Если Не ВестиПартионныйУчетПоСкладамРегл Тогда ТаблицаДвижений.ЗаполнитьЗначения(Неопределено, "Склад"); Иначе ТаблицаДвижений.ЗаполнитьЗначения(Склад, "Склад"); КонецЕсли;
Если СтруктураШапкиДокумента.ОтражатьВУправленческомУчете Тогда
Если СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.Розничный ИЛИ СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда УправлениеСертификациейНоменклатуры.ПроверитьНаСертификацию(ТаблицаПоТоварам.ВыгрузитьКолонку("СерияНоменклатуры"), Дата, Ложь, Заголовок); КонецЕсли;
// // ТОВАРЫ ПО РЕГИСТРУ ТоварыНаСкладах или ТоварыВНТТ. // Если СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда // НаборДвижений = Движения.ТоварыВНТТ; // ИначеЕсли СтруктураШапкиДокумента.ВидСклада = Перечисления.ВидыСкладов.Розничный Тогда // НаборДвижений = Движения.ТоварыВРознице; // Иначе // НаборДвижений = Движения.ТоварыНаСкладах; // КонецЕсли;
СтруктураПолей.Вставить("ЦенаВРознице" , "ЦенаВРознице"); Если ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.ТоварыПродукция ИЛИ ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.БланкиСтрогогоУчета Тогда
Процедура ПодготовитьПараметрыУчетнойПолитики(Отказ, Заголовок, СтруктураШапкиДокумента) Экспорт мУчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиУпр(Дата,истина); Если НЕ ЗначениеЗаполнено(мУчетнаяПолитика) Тогда Отказ = Истина; КонецЕсли;
Если СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете Тогда УчетнаяПолитикаРегл = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Дата, Организация,истина); Если НЕ ЗначениеЗаполнено(УчетнаяПолитикаРегл) Тогда Отказ = Истина; КонецЕсли; КонецЕсли;
// Дабы не допустить ситуации, когда скрытая ТЧ содержит строки. Если БланкиСтрогогоУчета.Количество() > 0 Тогда ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.БланкиСтрогогоУчета; КонецЕсли; // БланкиСтрогогоУчета.Количество()
// Проверка заполнения единицы измерения мест и количества мест ОбработкаТабличныхЧастей.ПриЗаписиПроверитьЕдиницуИзмеренияМест(Товары);
// Посчитать суммы документа и записать ее в соответствующий реквизит шапки для показа в журналах СуммаДокумента = Товары.Итог("Сумма") + БланкиСтрогогоУчета.Итог("Сумма"); СуммаДокументаРегл = Товары.Итог("СуммаРегл") + БланкиСтрогогоУчета.Итог("СуммаРегл");
// Сформируем запрос на дополнительные параметры, нужные при проведении, по данным шапки документа СтруктураШапкиДокумента = УправлениеЗапасами.СформироватьЗапросПоДеревуПолей(ЭтотОбъект, ДеревоПолейЗапросаПоШапке, СтруктураШапкиДокумента, мВалютаРегламентированногоУчета);
// Подготовим таблицу товаров для проведения. ТаблицаПоТоварам = ПодготовитьТаблицуТоваров(РезультатЗапросаПоТоварам, СтруктураШапкиДокумента);
//Заполнение и проверка заполнения счетов учета номенклатуры и затрат Если ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.ТоварыПродукция Тогда СчетаУчетаВДокументах.ЗаполнитьПриПроведенииСчетаУчетаТабличнойЧасти("Товары", ТаблицаПоТоварам, СтруктураШапкиДокумента); КонецЕсли;
// Получим необходимые данные для проведения и проверки заполнения по табличной части "БланкиСтрогогоУчета". СтруктураПолей = Новый Структура; СтруктураПростыхПолей = Новый Структура; СтруктураСложныхПолей = Новый Структура;
Если ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.ТоварыПродукция ИЛИ ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.БланкиСтрогогоУчета Тогда
//Скрытая табличная часть не может содержать строки, которые влияют на движения. Если ВидОперации <> Перечисления.ВидыОперацийОприходованиеТоваров.БланкиСтрогогоУчета Тогда
Если БланкиСтрогогоУчета.Количество() Тогда
ОбщегоНазначения.СообщитьИнформацию("В скрытой табличной части ""Бланки строгого учета"", остались не удаленные строки. Необходимо очистить строки или выбрать иной вид операции. Для отображения бланков строгого отчета, необходимо выбрать вид операции равный ""бланки строгого учета""!"); Отказ = Истина;
// объединим таблицу товаров и БСО, // чтобы не выполнять аналогичные действия для каждой таблицы движений. // дополним недостающими колонками из таблицы бланков Для каждого КолонкаБланки Из ТаблицаПоБланкам.Колонки Цикл
Если ТаблицаПоТоварам.Колонки.Найти(КолонкаБланки.Имя) = Неопределено Тогда
// Движения по документу Если Не Отказ Тогда ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, Отказ, Заголовок); КонецЕсли;
//Сделаем переменные доступными из подписок на события ДополнительныеСвойства.Вставить("СтруктураШапкиДокумента", СтруктураШапкиДокумента); ДополнительныеСвойства.Вставить("СтруктураТабличныхЧастей", Новый Структура("ТаблицаПоТоварам", ТаблицаПоТоварам));
мПараметрыСвязиСтрокТЧ = Новый Соответствие; мПараметрыСвязиСтрокТЧ.Вставить("Товары", Новый Структура("СвободныйКлюч, ФлагМодификации", Неопределено, Ложь));
Код стандартный. Его никто не менял. Добавил еще один регистр, по нему движения идут... Проводки и Учет Затрат нет... Еще раз напомню что это точная копия работающего документа!
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 2 раз
Рейтинг: 0
Petre @ Сегодня, 14:39
, Понятия не имею что такое подписка на событие. В событиях и близко нет ничего похожего на действия связаные с проводками.
В общем модуле нашел какую то ботву, которая говорит что если ДокументСсылка.ОприходованиеТоваров тогда сформировать проводки и так далее. если документ не равно вывести сообщение "Не удалось сформировать проводки..."
Скопировал строку под свой документ, теперь ошибка "УправлениеЗапасамиПартионныйУчет.Модуль(10679)}: Поле объекта не обнаружено (СчетКт)" Нахрен этот партионный учет... РАУЗ включен. Теперь копаю тут. Сомнения есть что копаю туда куда нужно.
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 2 раз
Рейтинг: 0
logist @ 14.04.17, 17:14
,
С проводками вопрос решил. ПРишлось кое что подкоректировать в общем модуле. А, вот проводок по регистру "УчетЗатратРегл" ну никак! У кого есть какие идеи?
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!