Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 09:47
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Не могу определить где ошибка? Помогите.  (Прочитано 1693 раз)

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

Оффлайн 91222

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-07-09
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день всем!



В управление автотранспортом нужно написать что-то похожее как в бухгалтерии типа документа передача материалов в эксплуатацию. Код проведения приведен ниже. Вроде бы все работает.


Но когда делаем отмену проведения документа и добавляем в документ новые данные, почему-то запрос пустой....


Заранее спасибо.


Процедура ОбработкаПроведения(Отказ, Режим)

// регистр уатПартииТоваровНаСкладах Расход

Движения.уатПартииТоваровНаСкладах.Очистить();

Движения.уатСпецодеждаИИнвентарь.Очистить();

Для Каждого ТекСтрокаСпецодежда Из Спецодежда Цикл

Ном = ТекСтрокаСпецодежда.Номенклатура;

УчетнаяПолитика = РегистрыСведений.уатУчетнаяПолитика.ПолучитьПоследнее(Дата);

Если УчетнаяПолитика = Перечисления.СпособыОценки.ЛИФО Тогда

ПорядокСписания = "УБЫВ";

Иначе

ПорядокСписания = "ВОЗР";

КонецЕсли;

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ
| уатПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,
| уатПартииТоваровНаСкладахОстатки.Партия КАК Партия,
| уатПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
| уатПартииТоваровНаСкладахОстатки.СтоимостьОстаток КАК СтоимостьОстаток,
| уатПартииТоваровНаСкладахОстатки.СтоимостьУпрОстаток КАК СтоимостьУпрОстаток,
| уатПартииТоваровНаСкладахОстатки.Склад
|ИЗ
| РегистрНакопления.уатПартииТоваровНаСкладах.Остатки(&МоментВремени, Номенклатура = &Ном) КАК уатПартииТоваровНаСкладахОстатки
|
|УПОРЯДОЧИТЬ ПО
| Партия.МоментВремени " + ПорядокСписания + "";

Запрос.УстановитьПараметр("Ном", Ном);

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());

Результат = Запрос.Выполнить();

Выборка = Результат.Выгрузить();
Итого = Выборка.Итог("КоличествоОстаток");
        Выборка.Колонки.Добавить("КоличествоСписать",,"КоличествоСписать");
Кол = ТекСтрокаСпецодежда.Количество;
Если Кол <= Итого Тогда
Для каждого Строка из Выборка Цикл
Если Кол > Строка.КоличествоОстаток Тогда
Строка.КоличествоСписать = Строка.КоличествоОстаток;
    Кол = Кол - Строка.КоличествоСписать;
Иначе
Строка.КоличествоСписать = Кол;
Кол = Кол - Строка.КоличествоСписать;
КонецЕсли;
КонецЦикла;
//ТЧ = Результат.Выгрузить();
//Для каждого Строка из Выборка Цикл
// Если Строка.КоличествоСписать = 0 Тогда
// Выборка.Удалить(Строка);
// КонецЕсли;
//КонецЦикла;

//СтаршийИндексКолонок = Выборка.Колонки.Количество() - 1;

Индекс = Выборка.Количество() - 1;

Пока Индекс >= 0 Цикл

//Для Сч = 0 По СтаршийИндексКолонок Цикл

Если Выборка[Индекс].КоличествоСписать = 0 Тогда

Выборка.Удалить(Индекс);

//Прервать;

КонецЕсли;

//КонецЦикла;

Индекс = Индекс - 1;

КонецЦикла;


Для Каждого Стр Из Выборка Цикл

Движение = Движения.уатПартииТоваровНаСкладах.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Номенклатура = Стр.Номенклатура;

Движение.Склад = Стр.Склад;

    Движение.Количество = Стр.КоличествоСписать;

Движение.Партия = Стр.Партия;

    Движение.Стоимость = Стр.СтоимостьОстаток;

Движение.СтоимостьУпр = Стр.СтоимостьУпрОстаток;

КонецЦикла;

// движения по новому регистру

    Движение = Движения.уатСпецодеждаИИнвентарь.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Номенклатура = ТекСтрокаСпецодежда.Номенклатура;

Движение.Количество =  ТекСтрокаСпецодежда.Количество;

Движение.Местонахождение = Местонахождение;

Движение.Организация = Организация;

Движение.Ответственный = Ответственный;

Движение.Склад = Склад;

Движение.ФизЛицо = ТекСтрокаСпецодежда.ФизЛицо;

Движение.СрокИспользования = ТекСтрокаСпецодежда.СрокИспользования;

Иначе

Нехватает = ТекСтрокаСпецодежда.Количество - Итого;

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Не хватает товара " + "'" + Стр.Номенклатура + "'" +

" количество " + Нехватает + " в наличии осталось только " + Итого;

Сообщение.УстановитьДанные(ЭтотОбъект);

Сообщение.Сообщить();

Отказ = Истина;

КонецЕсли;    
КонецЦикла;




// Вкладка СпецОснастка
 
Для Каждого ТекСтрокаСпецоснастка Из Спецоснастка Цикл

Ном = ТекСтрокаСпецоснастка.Номенклатура;

УчетнаяПолитика = РегистрыСведений.уатУчетнаяПолитика.ПолучитьПоследнее(Дата);

Если УчетнаяПолитика = Перечисления.СпособыОценки.ЛИФО Тогда

ПорядокСписания = "УБЫВ";

Иначе

ПорядокСписания = "ВОЗР";

КонецЕсли;

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ
| уатПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,
| уатПартииТоваровНаСкладахОстатки.Партия КАК Партия,
| уатПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
| уатПартииТоваровНаСкладахОстатки.СтоимостьОстаток КАК СтоимостьОстаток,
| уатПартииТоваровНаСкладахОстатки.СтоимостьУпрОстаток КАК СтоимостьУпрОстаток,
| уатПартииТоваровНаСкладахОстатки.Склад
|ИЗ
| РегистрНакопления.уатПартииТоваровНаСкладах.Остатки(&МоментВремени, Номенклатура = &Ном) КАК уатПартииТоваровНаСкладахОстатки
|
|УПОРЯДОЧИТЬ ПО
| Партия.МоментВремени " + ПорядокСписания + "";

Запрос.УстановитьПараметр("Ном", Ном);

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());

Результат = Запрос.Выполнить();

Выборка = Результат.Выгрузить();
Итого = Выборка.Итог("КоличествоОстаток");
        Выборка.Колонки.Добавить("КоличествоСписать",,"КоличествоСписать");
Кол = ТекСтрокаСпецоснастка.Количество;
Если Кол <= Итого Тогда
Для каждого Строка из Выборка Цикл
Если Кол > Строка.КоличествоОстаток Тогда
Строка.КоличествоСписать = Строка.КоличествоОстаток;
    Кол = Кол - Строка.КоличествоСписать;
Иначе
Строка.КоличествоСписать = Кол;
Кол = Кол - Строка.КоличествоСписать;
КонецЕсли;
КонецЦикла;
//ТЧ = Результат.Выгрузить();
//Для каждого Строка из Выборка Цикл
// Если Строка.КоличествоСписать = 0 Тогда
// Выборка.Удалить(Строка);
// КонецЕсли;
//КонецЦикла;

//СтаршийИндексКолонок = Выборка.Колонки.Количество() - 1;

Индекс = Выборка.Количество() - 1;

Пока Индекс >= 0 Цикл

//Для Сч = 0 По СтаршийИндексКолонок Цикл

Если Выборка[Индекс].КоличествоСписать = 0 Тогда

Выборка.Удалить(Индекс);

//Прервать;

КонецЕсли;

//КонецЦикла;

Индекс = Индекс - 1;

КонецЦикла;


Для Каждого Стр Из Выборка Цикл

Движение = Движения.уатПартииТоваровНаСкладах.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Номенклатура = Стр.Номенклатура;

Движение.Склад = Стр.Склад;

    Движение.Количество = Стр.КоличествоСписать;

Движение.Партия = Стр.Партия;

    Движение.Стоимость = Стр.СтоимостьОстаток;

Движение.СтоимостьУпр = Стр.СтоимостьУпрОстаток;

КонецЦикла;

// движения по новому регистру

    Движение = Движения.уатСпецодеждаИИнвентарь.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Номенклатура = ТекСтрокаСпецоснастка.Номенклатура;

Движение.Количество =  ТекСтрокаСпецоснастка.Количество;

Движение.Местонахождение = Местонахождение;

Движение.Организация = Организация;

Движение.Ответственный = Ответственный;

Движение.Склад = Склад;

Движение.ФизЛицо = ТекСтрокаСпецоснастка.ФизЛицо;

Движение.СрокИспользования = ТекСтрокаСпецоснастка.СрокИспользования;

Иначе

Нехватает = ТекСтрокаСпецоснастка.Количество - Итого;

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Не хватает товара " + "'" + Стр.Номенклатура + "'" +

" количество " + Нехватает + " в наличии осталось только " + Итого;

Сообщение.УстановитьДанные(ЭтотОбъект);

Сообщение.Сообщить();

Отказ = Истина;

КонецЕсли;    
КонецЦикла;


КонецПроцедуры

Последний раз редактировалось: MuI_I_Ika; 06 Дек 2012, 10:46


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
177 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
AIFrame
45 Сообщений
alex0402
44 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 714
  • Точка Скрытых: 0
  • Точка Пользователей: 19
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal