Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Блокировка товара в ТЧ , записываются не все товары          
1cnovice Подменю пользователя
сообщение 05.06.13, 21:20
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 42
Из: Kyiv
Спасибо сказали: 7 раз
Рейтинг: 7

Всем добрый время!
Подкиньте советов, подскажите где копать..
Не судите строго, еще маладой в этом деле

Есть Регистр Накопления "БлокировкаТовара" С Измерением номенклатура и ресурсом количество
Задача состоит в том что бы пользователь мог блокировать товар в расходной накладной, который введен в табличную часть, кнопочкой на форме.

Собсна, создал я экспортную процедуру в модуле документа Расходная:

Процедура БлокировкаТовара()Экспорт
    Записать();
    Движения.БлокировкаТовара.Очистить();
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    РасходнаяНакладнаяПереченьТоваров.Номенклатура,
    |    РасходнаяНакладнаяПереченьТоваров.Количество
    |ИЗ
    |    Документ.РасходнаяНакладная.ПереченьТоваров КАК РасходнаяНакладнаяПереченьТоваров
    |ГДЕ
    |    РасходнаяНакладнаяПереченьТоваров.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    Результат=Запрос.Выполнить().Выбрать();
    ТЗ=Запрос.Выполнить().Выгрузить();
    Пока Результат.Следующий() Цикл
    НаборЗаписей=РегистрыНакопления.БлокировкаТовара.СоздатьНаборЗаписей();
    Движение=НаборЗаписей.ДобавитьПриход();
    НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
    Движение.Номенклатура=Результат.Номенклатура;
    Движение.Период=Дата;
    Движение.Количество=Результат.Количество;
    КонецЦикла;
    Движения.БлокировкаТовара.Записать();
    НаборЗаписей.Записать();
КонецПроцедуры


И потом вызываю ее в обработчике этой кнопки:
&НаКлиенте
Процедура Заблокировать(Команда)
    ЗаблокироватьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаблокироватьНаСервере()
    Документ=РеквизитФормыВЗначение("Объект");
    Документ.БлокировкаТовара();
    ЗначениеВРеквизитФормы(Документ,"Объект");
КонецПроцедуры


В результате проблема следующая: В регистр записывается только 1 строчка с товаром из ТЧ..
Мне кажется косяк в процедуре модуля формы в преобразовании объекта, впервые сталкиваюсь с данным методом

XBrut Подменю пользователя
сообщение 05.06.13, 23:24
Сообщение #2

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

Шо ж Вы набор записей в каждом проходе цикла создаёте?
Создайте процедуру обработки проведения конструктором и посмотрите як люды делають icon_beer17.gif

Спасибо сказали: 1cnovice,

Vofka Подменю пользователя
сообщение 06.06.13, 7:58
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Процедура БлокировкаТовара()Экспорт
    Записать();
    Движения.БлокировкаТовара.Очистить();
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    РасходнаяНакладнаяПереченьТоваров.Номенклатура,
    |    РасходнаяНакладнаяПереченьТоваров.Количество
    |ИЗ
    |    Документ.РасходнаяНакладная.ПереченьТоваров КАК РасходнаяНакладнаяПереченьТоваров
    |ГДЕ
    |    РасходнаяНакладнаяПереченьТоваров.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    Результат=Запрос.Выполнить().Выбрать();
    НаборЗаписей=Движения.БлокировкаТовара;
    Пока Результат.Следующий() Цикл
       Движение=НаборЗаписей.ДобавитьПриход();
       Движение.Номенклатура=Результат.Номенклатура;
       Движение.Период=Дата;
       Движение.Количество=Результат.Количество;
    КонецЦикла;
    Движения.БлокировкаТовара.Записать();
КонецПроцедуры


Сообщение отредактировал Vofka - 06.06.13, 8:02

Спасибо сказали: 1cnovice,

logist Подменю пользователя
сообщение 06.06.13, 8:47
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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



Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: 1cnovice, XBrut,

1cnovice Подменю пользователя
сообщение 06.06.13, 9:23
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 42
Из: Kyiv
Спасибо сказали: 7 раз
Рейтинг: 7

Спасибо вам. Я что-то и не подумал насчет того что создается набор записей в каждом проходе цикла. Первый раз делаю набор записей вне модуля "обработка проведения"

logist Подменю пользователя
сообщение 06.06.13, 9:52
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(1cnovice @ 06.06.13, 10:23) *
Первый раз делаю набор записей вне модуля "обработка проведения"

Запись движений в процедуре проведения и вне ее, как правило не отличается. Для управляемого приложения так же есть стандарты формирования движений, используя модуль менеджера объекта, ДополнительнчеСвойства объекта, и общие процедуры по записи движений.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: 1cnovice,

Vofka Подменю пользователя
сообщение 06.06.13, 9:55
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Цитата(logist @ 06.06.13, 10:52) *
Для управляемого приложения так же есть стандарты формирования движений

Они где-то описаны?

logist Подменю пользователя
сообщение 06.06.13, 10:03
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 06.06.13, 10:55) *
Они где-то описаны?

Без понятия, но на их наличие указывает использование одинакового механизма заполнения движения в разных конфигурация, в т.ч. у разных разработчиков (имеются ввиду продукты 1С:Совместимо)


Signature
Личные бесплатные консультации не даю, для этого есть форум!

A1ex_2 Подменю пользователя
сообщение 08.06.13, 7:42
Сообщение #9

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(1cnovice @ 05.06.13, 21:20) *
ТЗ=Запрос.Выполнить().Выгрузить();
Пока Результат.Следующий() Цикл


меня ето смущает, в Таблице значений метод "Следующий()" не доступный. естественно цыкл не будет выполнятса.

alex040269 Подменю пользователя
сообщение 08.06.13, 8:01
Сообщение #10

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(A1ex_2 @ 08.06.13, 8:42) *
меня ето смущает, в Таблице значений метод "Следующий()" не доступный. естественно цыкл не будет выполнятса.



ТЗ=Запрос.Выполнить().Выбрать();


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

1cnovice Подменю пользователя
сообщение 09.06.13, 12:58
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 42
Из: Kyiv
Спасибо сказали: 7 раз
Рейтинг: 7

ТЗ=Запрос.Выполнить().Выбрать();


Да эту строчку можно было бы убрать, я использовал ее что бы посмотреть лишь результат запроса

XBrut Подменю пользователя
сообщение 09.06.13, 13:23
Сообщение #12

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

Движения.БлокировкаТовара.Загрузить(Результат);
Движения.БлокировкаТовара.Записать();


это какой то гламур smile.gif

Спасибо сказали: 1cnovice,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 03.06.24, 5:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!