helpf.pro
Регистрация

v8: Форма документа

ovel
16.04.2013 16:13Прочитано: 6129
Сражаюсь со встроенным языком - безуспешно
Помогите, пожалуйста
Не могу в модуле формы документа сделать ссылку на Регистр накоплений для получения остатков - что то не так делаю...

Процедура ИнвентаризацияКоличествоПриИзменении(Элемент)
// Вставить содержимое обработчика.

// Получить текущую строку табличной части
СтрокаТабличнойЧасти = ЭлементыФормы.Инвентаризация.ТекущиеДанные;

// Получить остатки товаров
СтрокаТабличнойЧасти.Количество = Количество.Количество(Дата,Элемент.Значение);

КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
Mokey
16.04.2013 16:25Ответ № 1
Количество.Количество(Дата,Элемент.Значение); - а это вот что такое???
ovel
16.04.2013 16:40Ответ № 2
Название функции в общем модуле и ресурс регистра накопления, который не могу внести в форму документа
Mokey
16.04.2013 17:07Ответ № 3
(2) ovel, расшифруйте, что есть функция, что есть ресурс
ovel
16.04.2013 17:10Ответ № 4
Количество(функция общего модуля).Количество (ресурс регистра накопления - остатки, которые я не могу вставить в новый документ)
Mokey
16.04.2013 17:16Ответ № 5
хм... а как это функция возвращает Вам количество? Прямо через точку можно обращаться?
или 1С так далеко вперёд шагнула уже?
Изменено 16.04.13 17:18:01
powsems
17.04.2013 09:35Ответ № 6
(0) ovel, я думаю вам проще просто прочесть статьи про запросы и получить остатки с помощью запросов. И вообще может я не внимательно прочитал, но я так и не понял из какого регистра вы хотите получить остатки. в общем вообще советую прочесть про регистры накопления и поищите в интеренете что-нибудь типа: "1С запросы получение остатков" и т.п.
Изменено 17.04.13 09:51:01
ovel
17.04.2013 10:40Ответ № 7
да я столько всего перечитала и перепробовала сделать, но ничего не получается,
а смысл простой - вставить в новый созданный документ информацию из Регистра накоплений, делаю по аналогии "установить цену", где идет ссылка на регистр сведений и через общий модуль ( там все без проблем - как у Радченко ), а вот с Регистром накопления - никак - понимаю, что примитив - но я только учусь - sorry, please !
ovel
17.04.2013 10:54Ответ № 8
Может я что-то не так поняла , но в добавление к предыдущей записи хочу сказать, что не могу правильно составить модуль формы документа При открытии в колонке Количество - у меня 2 колонки Товар и Количество - Товар заполняется и надо еще, чтобы автоматом заполнялась колонка из Регистра накоплений - остатки товаров
powsems
17.04.2013 11:12Ответ № 9
(8) ovel, ну а данные по остаткам вы как получаете?
ovel
17.04.2013 13:37Ответ № 10
Есть другие документы поступление, продажа, возврат товара, а теперь нужен документ на инвентаризацию
powsems
18.04.2013 09:10Ответ № 11
(7) ovel, ну с регистром накоплений мне кажется надо запросами... просто получить из виртуальной таблицы остатки и все. Может конечно и можно через общие модули какие-нибудь, но я не знаю как через общий, просто получите остатки запросом.
ovel
18.04.2013 09:59Ответ № 12
powersems, спасибо большое за совет обратиться к запросам. Работаю над этим, но пока не получается. Беру поле ввода При открытии и в процедуре пишу :

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

... и ничего не получается.. уже и Радченко перешерстила неоднократно и интернет - очень хочется научиться встроенному языку - посоветуйте как (только не говорите, что надо заняться чем-то другим - please !
powsems
18.04.2013 10:21Ответ № 13
(12) ovel, | РегистрНакопления.ТоварОстатки.Остатки(&Дата, Номенклатура = &Номенклатура, Склад = &Склад) |КАК ТоварОстатки тут ошибка должно быть так: | РегистрНакопления.ТоварОстатки.Остатки(&Дата, Номенклатура = &Номенклатура, Склад = &Склад) КАК ТоварОстатки далее что-то я не уверен что есть такой регистр вообще, лучше воспользуйтесь конструктором с обработкой результата, посмотрите в интернете как пользоваться.
Mokey
18.04.2013 10:52Ответ № 14
(12) ovel,
Во-первых, нужно задать параметры запросу (&Номенклатура и &Склад)
Во-вторых, в какой момент выполняется запрос? если при открытии документа, то нужно формировать список из номенклатуры всей ТЧ.
В-третьих,
Результат=Запрос.Выполнить().Выбрать(); это выборка из результата, чтобы получить значение поля, надо пройти выборку:
Пока Результат.Следующий() Цикл - это если будет много записей, а если Вы уверены, что остаток вернётся одной записью, то так:
Результат.Следующий();
ovel
18.04.2013 10:55Ответ № 15
Спасибо большое - буду мучиться дальше - в документе все равно ничего не появляется - наверно еще где-то ошибки
Mokey
18.04.2013 11:05Ответ № 16
(15) ovel, Ошибок может и не быть, скорректируйте меня,
"Беру поле ввода При открытии и в процедуре пишу" что за поле ввода? Если в ТЧ документа только два реквизита, номенклатура и количество, то при открытии в запрос передаёте список номенклатуры, тогда уловие будет выглядеть так:
| РегистрНакопления.ТоварОстатки.Остатки(&Дата, Номенклатура В(&Номенклатура), Склад = &Склад), а в качестве параметра запроса пишете:
Запрос.Параметры.Вставить("Номенклатура", Инвентаризация.ВыгрузитьКолонку("Номенклатура"));

Далее заполняете количество из выбранных остатков, или, что проще, делаете загрузку в ТЧ:
Инвентаризация.Загрузить(Запрос.Выполнить().Выгрузить()), только в запросе не забудьте выбрать поле Номенклатура
ovel
18.04.2013 12:16Ответ № 17
Mokey, спасибо, попробую - А вот такой вопрос - при отладке мой документ Инвентаризация заполняется автоматически ? Я имею ввиду и Товар, и Количество, если я в форме указала ссылку на Регистр
Mokey
18.04.2013 15:08Ответ № 18
остатками навряд ли. остатки - это виртуальная таблица регистра накопления
ovel
18.04.2013 15:31Ответ № 19
Тогда может подскажите (простите за нулевость), как сделать документ для инвентаризации
товаров (Товар и Количество), если Количество (остатки) отражено в Регистре накоплений (из документов : поступление, продажа, возврат). Хотелось бы, чтобы документ автоматом выводил Товар и Количество (остатки), а я потом добавлю количество по факту. Еще раз спасибо.
Mokey
18.04.2013 16:45Ответ № 20
так всё просто же. собрать надо из этой ветки всё воедино и получится:
Код 1C v 8.х
 
Процедура ИнвентаризацияКоличествоПриОткрытии(Элемент)
Запрос=Новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| ТоварОстатки.Номенклатура,
| ТоварОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварОстатки.Остатки(&Дата, Склад = &Склад) КАК ТоварОстатки
|ГДЕ ТоварОстатки.КоличествоОстаток <> 0";
Запрос.Параметры.Вставить("Склад", Склад); //имеется в виду, что реквизит Склад уже заполнен!
Инвентаризация.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
ovel
19.04.2013 11:49Ответ № 21
Mokey ! Спасибо за Ваше терпение к новичку - я научилась делать запрос ( на данном этапе конечно ) только благодаря Вам. Огромнейшее спасибо !
Подсказка:Вы можете добавить любую страничку в Социальные закладки щелкнув по значку соцсетей (в вверху)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.