Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 03:14

Движения ПоступлениеТоваровУслут

Автор Игорь_M, 07 мая 2015, 18:53

0 Пользователей и 1 гость просматривают эту тему.

Игорь_M

В ОбработкуПроведения  вставил такой код:
Движения.МатериалыПодтвержденные.Записывать = Истина;
Движения.МатериалыПодтвержденные.Очистить();
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.МатериалыПодтвержденные.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
КонецЦикла;
Движения.Записать();

Движения.МатериалыОприходованные.Записывать = Истина;
Движения.МатериалыОприходованные.Очистить();
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.МатериалыПодтвержденные.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
КонецЦикла;
Движения.Записать();

ПроверкиСобытий.СтатусыУстановить();


почему не добавляются движения в соответствующие регистры?

Дмитрий@

Движения.МатериалыПодтвержденные.Записать()
Движения.МатериалыОприходованные.Записать()
вместо Движения.Записать()

SamMan

Цитата: Дмитрий@ от 07 мая 2015, 20:27
Движения.МатериалыПодтвержденные.Записать()
Движения.МатериалыОприходованные.Записать()
вместо Движения.Записать()

Почему так? Разве Движения.Записать() не обслуживает всю коллекцию Движения? Кроме того, так как написано у ТС много лучше предлагаемого вами в плане борьбы со взаимоблокировками, объяснения/пруфы - тут.

Игорь_M

Дмитрий, не помогло
вот полный текст процедуры, может там блокировки какие:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)



Перем СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоОборудованию, ТаблицаПоУслугам, ТаблицаПоАгентскимУслугам, ТаблицаПоОбъектамСтроительства;

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

Движения.МатериалыОприходованные.Записывать = Истина;
Движения.МатериалыОприходованные.Очистить();
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.МатериалыПодтвержденные.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
КонецЦикла;
Движения.МатериалыОприходованные.Записать();

ПроверкиСобытий.СтатусыУстановить();

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


// Заголовок для сообщений об ошибках проведения.
Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(Ссылка);
     
// Проверка ручной корректировки
Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
Возврат
КонецЕсли;

ПодготовитьСтруктуруШапкиДокумента(Заголовок, СтруктураШапкиДокумента, Отказ);

// Проверим правильность заполнения шапки документа
ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);

ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоОборудованию, ТаблицаПоУслугам, ТаблицаПоАгентскимУслугам, ТаблицаПоОбъектамСтроительства);

// Проверить заполнение ТЧ
ПроверитьЗаполнениеТабличнойЧастиТовары(ТаблицаПоТоварам, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиУслуги(ТаблицаПоУслугам, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиАгентскиеУслуги(ТаблицаПоАгентскимУслугам, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиОборудование(ТаблицаПоОборудованию, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиВозвратнаяТара(ТаблицаПоТаре, СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиОбъектыСтроительства(ТаблицаПоОбъектамСтроительства, СтруктураШапкиДокумента, Отказ, Заголовок);

// Зачет авансов
ТаблицаЗачетаАвансов = ПодготовитьТаблицуЗачетаАвансов(СтруктураШапкиДокумента);
ПроверитьЗаполнениеТабличнойЧастиЗачетАвансов(ТаблицаЗачетаАвансов, СтруктураШапкиДокумента, Отказ, Заголовок);

УправлениеВзаиморасчетами.ПроверкаВозможностиПроведенияВ_БУ_НУ(
СтруктураШапкиДокумента, СтруктураШапкиДокумента.ДоговорКонтрагента, Отказ, Заголовок);

// Движения по документу
ПартионныйУчет = УправлениеЗапасами.ВедетсяПартионныйУчет(
ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(КонецМесяца(Дата), Отказ, Организация), "БУ");
мПоддержкаПБУ18 = НалоговыйУчет.ПрименениеПБУ18(Организация, Дата);

Если Не Отказ Тогда
ДвиженияПоРегистрам(
РежимПроведения, СтруктураШапкиДокумента,
ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоАгентскимУслугам, ТаблицаПоОборудованию, ТаблицаПоОбъектамСтроительства,
ТаблицаЗачетаАвансов,
Отказ, Заголовок);
КонецЕсли;

Если НЕ Отказ Тогда
Движения.Записать();
УчетНДС.ПроверитьСоответствиеРеквизитовСчетаФактуры(ЭтотОбъект, "СчетФактураПолученный");
КонецЕсли;




КонецПроцедуры // ОбработкаПроведения()

cska-fanat-kz

"Движения.Записать()" уместно если вам движения нужны внутри ОбработкиПроведения(),
в противном случае запишется автоматом по окончании ОбработкиПроведения()
(если конечно не Отказ=ИСТИНА и ...Записывать=ИСТИНА)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Игорь_M

помогите до конца разобраться:
Документ ПоступлениеТоваровУслуг проводится  - в списке документов у него стоит зеленая галочка. Следовательно все движения связанные с этим доком должны записываться? Отладчиком смотрел - Отказ = Ложь, однако движений в нужных мне регистрах не наблюдается. Где я тут туплю?

vitasw

Цитата: Игорь_M от 07 мая 2015, 21:27Движения.МатериалыОприходованные???.Очистить(); Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.МатериалыПодтвержденные???.Добавить();


cska-fanat-kz

Зеленая галочка - это просто показывает что у документа стандартный реквизит Проведен установился в ИСТИНА.
И не более.
Надо проверить настройки самого документа а именно свойство "Запись движений при проведении"...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Дмитрий@

Поставьте точку останова в конце процедуры и посмотрите есть ли там движения по интересующим нас регистрам.

Игорь_M

Цитата: Дмитрий@ от 08 мая 2015, 10:09Поставьте точку останова в конце процедуры и посмотрите есть ли там движения по интересующим нас регистрам.


не могу прикрепить скрин - https://cloud.mail.ru/public/3MpU1q4mSj6U/11.png - ссылка

Цитата: cska-fanat-kz от 08 мая 2015, 09:53Зеленая галочка - это просто показывает что у документа стандартный реквизит Проведен установился в ИСТИНА.
И не более.
Надо проверить настройки самого документа а именно свойство "Запись движений при проведении"...
записывать модифицированные

Цитата: vitasw от 08 мая 2015, 09:27Движения.МатериалыОприходованные???.Очистить(); Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.МатериалыПодтвержденные???.Добавить();
это конечно, пипец ... но исправил - не помогает(((


[/quote]

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск