Имя: Пароль:
1C
1С v8
первая проводка нет записи в регистр вторая проводка записывает
0 igoza
 
18.06.13
19:08
первая проводка нет записи в регистр вторая проводка записывает, отмень проводку, и поновой так же, уже и скопировал и исправил код из других  похожих документов, так же

///////////////////////////////////////////////////////////////////////////////
// ФОРМИРОВАНИЕ СТРУКТУРЫ ДАННЫХ

// Формируется и проверяется шапка документа.
//
// Параметры:
//  прРежимПроведения - РежимПроведенияДокумента - режим проведения документа
//                      (Оперативный/Неоперативный).
//  прОтказ           - Булево - флаг отказа в проведении.
//
// Возвращаемое значение:
//  Структура - подготовленная структура шапки документа с параметрами.
//
Функция СформироватьСтруктуруШапки(прРежимПроведениия, прОтказ)
   
   СтруктураШапкиДокумента = обСформироватьСтруктуруШапкиДокумента(Ссылка, прРежимПроведениия);
   
   // Проверим правильность заполнения шапки документа.
   ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, прОтказ);
   
   Возврат СтруктураШапкиДокумента;
   
КонецФункции // СформироватьСтруктуруШапки()

// Процедура формирования таблицы значений по табличной части ТМЦ.
//
// Параметры:
//  прСтруктураШапкиДокумента - Структура - подготовленная структура шапки
//                              документа с параметрами.
//  прТаблицаТМЦ              - Неопределено.
//  прОтказ                   - Булево - флаг отказа в проведении.
//
Процедура СформироватьТаблицуПоЗаданиюПрих(прСтруктураШапкиДокумента, прЗадание, прОтказ)
   
   // Проверить заполнение ТЧ "Задание".
   ПроверитьЗаполнениеТабличнойЧастиЗадание(прСтруктураШапкиДокумента, прОтказ);
   
   Если прОтказ Тогда        
       Возврат;    
   КонецЕсли;
   
   //прЗадание = обКопироватьСтруктуруТаблицыЗначений(Задание);
   //обЗагрузитьВТаблицуЗначений(Задание, прЗадание);
   
   прЗадание = Новый ТаблицаЗначений;
   прЗадание.Колонки.Добавить("Комната");
   прЗадание.Колонки.Добавить("РабочиеМеста");
   прЗадание.Колонки.Добавить("Сотрудник");
   прЗадание.Колонки.Добавить("СистемныйБлок");
   прЗадание.Колонки.Добавить("Телефон");
   прЗадание.Колонки.Добавить("IP");
   прЗадание.Колонки.Добавить("MAC");
   прЗадание.Колонки.Добавить("Стоимость");
   
     Строка = прЗадание.Добавить();
   Строка.Комната = РабочееМесто.Комната;
   Строка.РабочиеМеста = РабочееМесто;
   Строка.Сотрудник = Сотрудник;
   Строка.СистемныйБлок = СистемныйБлок;
   Строка.Телефон = Телефон;
   Строка.IP = IP;
   Строка.MAC = MAC;
   Строка.Стоимость = 0;
       
КонецПроцедуры // СформироватьТаблицуПоЗаданию()

///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ПРОВЕРКИ КОРРЕКТНОСТИ ДАННЫХ

// Проверяет правильность заполнения шапки документа.
// Если какой-то из реквизтов шапки, влияющий на проведение не заполнен или
// заполнен не корректно, то выставляется флаг отказа в проведении.
// Проверяется также правильность заполнения реквизитов ссылочных полей документа.
// Проверка выполняется по объекту и по выборке из результата запроса по шапке.
//
// Параметры:
//  прСтруктураШапкиДокумента - выборка из результата запроса
//                              по шапке документа.
//  прОтказ                   - Булево - флаг отказа в проведении.
//
Процедура ПроверитьЗаполнениеШапки(прСтруктураШапкиДокумента, прОтказ)
   
   // Укажем, что надо проверить.
   СтруктураОбязательныхПолей = Новый Структура("Дата");
   
   // Теперь позовем общую процедуру проверки.
   обПроверитьЗаполнениеШапкиДокумента(ЭтотОбъект, СтруктураОбязательныхПолей, прОтказ, прСтруктураШапкиДокумента.Заголовок);
       
КонецПроцедуры // ПроверитьЗаполнениеШапки()

// Проверяет правильность заполнения строк табличной части ТМЦ.
//
// Параметры:
//  прСтруктураШапкиДокумента - выборка из результата запроса
//                              по шапке документа.
//  прОтказ                   - Булево - флаг отказа в проведении.
//
Процедура ПроверитьЗаполнениеТабличнойЧастиЗадание(прСтруктураШапкиДокумента, прОтказ)
   
   // Укажем, что надо проверить.
   СтруктураОбязательныхПолей = Новый Структура("ШтрихКод, Откуда, Комплектующие, Куда");
   
   // Теперь позовем общую процедуру проверки.
   обПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "Номенклатура", СтруктураОбязательныхПолей, прОтказ, прСтруктураШапкиДокумента.Заголовок);
       
КонецПроцедуры // ПроверитьЗаполнениеТабличнойЧастиЗадание()

///////////////////////////////////////////////////////////////////////////////
// ФОРМИРОВАНИЕ ДВИЖЕНИЙ ДОКУМЕНТА

// По результату запроса по шапке документа формируем движения по регистрам.
//
// Параметры:
//  прСтруктураШапкиДокумента - Структура - подготовленная структура шапки
//                              документа с параметрами.
//  прТаблицаТМЦ              - ТаблицаЗначений - таблица значений, сформированная
//                              по ТЧ ТМЦ.
//  прОтказ                   - Булево - флаг отказа в проведении.
//
Процедура ДвиженияПоРегистрамПостуление(прСтруктураШапкиДокумента, прТаблицаЗадания, прОтказ)
   
   //Движения по регистру СкладКомплектующих
   ДвиженияПоРегиструСкладКомплектующихПоступление(прТаблицаЗадания, прОтказ);
   
КонецПроцедуры

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


////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ

// Регистр сведений ШтрихКоды заполнение
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// Регистр сведений ШтрихКоды заполнение
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   
   Перем ТаблицаПоЗаданию;
   
   ОбработкаУдаленияПроведения(Отказ);
   
   //Удалим движения по регистрам накопления
   обУдалитьДвиженияДокумента(ЭтотОбъект, Отказ);
   
   СтруктураШапкиДокумента = СформироватьСтруктуруШапки(РежимПроведения, Отказ);
   //моСписокИспользуемыхПодсистем = СтруктураШапкиДокумента.СоответствиеИспользуемыеПодсистемы;

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


// Процедура - обработчик события "ОбработкаУдаленияПроведения"
//
//
Процедура ОбработкаУдаленияПроведения(Отказ)

   обУдалитьДвиженияДокумента(ЭтотОбъект, Отказ);

КонецПроцедуры // ОбработкаУдаленияДвижений()
1 igoza
 
18.06.13
19:09
надобыло лишнее удалить, что бы не путать народ xD
2 hhhh
 
18.06.13
20:27
(2) ну вот же сам чистишь первое движение

   ТаблицаДвижений = НаборДвижений.Выгрузить();
   ТаблицаДвижений.Очистить();
3 igoza
 
18.06.13
20:39
(2) скопировал другой регистр, в ставил всё от старого, иработает прекрасно, что-то не так с настройками регистра было. Создал другой документ, он туда ничего не записывал!