Посчитать количество строк табличной части #390335


#0 by Sakura
Сразу оговорюсь, большую часть данного проекта писала не я, мне поручено его только доработать :) собственно, суть вопроса: Есть документ, содержащий в числе прочего табличную часть, некоторые значения из которой выводятся в табличное поле формы. Табличная часть каким-то боком привязана к справочнику, но каким и где, я не разобралась :) По клику кнопки вызывается форма обработки, которая, в свою очередь, использует экспортную процедуру из общего модуля. И вот в этой самой процедуре требуется посчитать количество строк в табличной части. Как это можно сделать? Обращение к документу и через него к табличной части не срабатывает вообще -  выводится ошибка, подсчет строк в табличном поле дает 0 :(
#1 by butterbean
все зависит от того, что переадется в эту процедуру... код показывай... и фотку
#2 by Живой Ископаемый
типа ТЧ.Количество - некошерно в силу каких-то причин?
#3 by Defender aka LINN
Религиозные убеждения, не иначе
#4 by Sakura
кошерно, но не срабатывает :( из модуля формы документа оно не хочет никуда передаваться, а в других модулях или дает 0, или ошибку :(
#5 by Stepa86
это устаревшие и не гламурные методы...
#6 by Stepa86
чо за ошибка?
#7 by Живой Ископаемый
Видимо в процедуру нужно как-то передать ссылку на документ?
#8 by Sakura
обращение к документу дает ошибку Количество = ДокВыработка.ТабличнаяЧасть.Количество; {ОбщийМодуль.ОбщийМодуль}: Поле объекта не обнаружено (ТабличнаяЧасть)
#9 by Stepa86
какой тип у ДокВыработка и так ли называется его табличная часть??? отладчиком смотреть нужно
#10 by Salvador Limones
Ну правильно. У тебя ДокументМенеджер.
#11 by tsr
Без фотки могу только сказать, что код неправильный
#12 by Живой Ископаемый
а вот Форма.ГПА это ваще что? вернее даже Форма - это что?
#13 by Stepa86
чую проект там опупенный получится в итоге =) Нетленко, не иначе...
#14 by Sakura
дают все ту же ошибку :(
#15 by Stepa86
начнем с азов: про точки останова и режим отладки слышала чо нить?
#16 by Живой Ископаемый
божечки... Ну вот подумать мозгом! у какого документа мы путаемся определить количество строк? у среднего?
#17 by rie
См. . У тебя не ДокументОбъект и не ДокументСсылка, а ДокументМенеджер. Ты смотришь не табличную часть документа, а что-то загадочное.
#18 by Sakura
Знаю, что вопрос тупой, но как мне обратиться к ДокументСсылка? Компилятор выдает ошибку: {ОбщийМодуль.ОбщийМодуль(654,17)}: Переменная не определена (ДокументСсылка) Очень извиняюсь, я не блондинка, я просто с 1С всего вторую неделю работаю :)
#19 by rie
Какие параметры передаются в процедуру и откуда эта процедура вызывается?
#20 by Sakura
#21 by Живой Ископаемый
где кнопка находится?
#22 by rie
Процедура ЗаполнениеИзФайла - что должна сделать? В приведенных процедурах нет документа. О каком документе идёт речь?
#23 by Sakura
Кнопка - на форме обработки. Обработка считывает данные из файла, а эта процедура по замыслу должна эти данные вносить в документ. Этот самый документ, точнее, его форма документа, вызывает обработку, а там уже вызывается процедура.
#24 by Живой Ископаемый
2 вот секундочку... "Этот самый документ, точнее, его форма документа, вызывает обработку" имеется в иду - что вы открыли или создали конкретный документ, у него есть номер, дата, видна табличная часть? Каким кодом дальше вы открываете из документа форму обработки?
#25 by Sakura
//я открываю уже имеющийся документ, его форму документа, щелкаю там на кнопку и //вызываю обработку:
#26 by Sakura
когда я открываю форму документа, на ней есть несколько табл. полей, одно из которых отображает некоторые поля табл. части.
#27 by Живой Ископаемый
2 Прще всего у вас должно быть так: ДокументСсылка определить как ссылка на документ Выработка в форме обработки "ВВодНаработки"
#28 by Живой Ископаемый
примерно === но все равно  вот это нужно будет очень сильно менять
#29 by Sakura
Спасибо, сейчас попробую.
#30 by Живой Ископаемый
ай, все равно у вас ничего не выйдет...
#31 by Sakura
да, как было 0, так и осталось. Правда, теперь хоть ошибку не выдает :)
#32 by Manfy
Если в процедуру передать Объект документ, то можно все посчитать. Приведенный кусок кода работать и не должен, поскольку неправильно используется менеджер документов
#33 by Sakura
То ли руки у меня кривые, то ли мозг :( не получается у меня объект и все тут. Беру ссылку, она берется, данные вроде как есть, но собственно ссылки нет, пишет, что объект не найден. Соответвенно объект я получить тоже не могу :( Просьба тапками и прочим не кидаться, а объяснить, где и что у меня не так. как итог в табло вижу: ДокументСсылка <Объект не найден> (785:ae13001c253fdef511ddfcd730c36c7b) Объект    Неопределено
#34 by Sakura
Ну и количество, естественно, все так же 0
#35 by Salvador Limones
ГДЕ? В каком месте ты позиционируешься на определённом документе, чтобы считать его количество?
#36 by Sakura
В смысле?
#37 by Живой Ископаемый
2 В смысле в каком месте ты позиционируешься на документе №5 от 5 брамбрабря надцатого года?
#38 by hhhh
вот описание функции ПолучитьСсылку. Объясни с какого она здесь боку, и зачем ты нам ее постоянно подсовываешь? Параметры: <Уникальный идентификатор> (необязательный) Тип: УникальныйИдентификатор. Уникальный идентификатор, из которого будет формироваться ссылка. Возвращаемое значение: Тип: ДокументСсылка. Описание: Формирует ссылку из значения типа УникальныйИдентификатор. Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор. Примечание: Если параметр не указан или передано значение Неопределено, то будет сформирована новая уникальная ссылка.
#39 by Живой Ископаемый
Ладно, давайте на пальцах... Перед вами стоит задача - посчитать количество квадратных метров в вашей комнате? Вопрос как вы будете это делать? Тоже нарисуете асбтрактный прямоугольник и умножите ширину на длину?
#40 by Живой Ископаемый
или все-таки измерите ширину и длину вашей комнаты... Вопрос - каким образом вы перешли от абстрактной комнаты (документ.менеджер) к конкретно вашей комнате (Документ.Объект)?
#41 by Sakura
Живой Ископаемый: еще раз говорю, я новичок в 1С, всего вторую неделю работаю)) поэтому не знаю иногда самых элементарных вещей... Я пытаюсь взять ссылку на документ и по ссылке получить данный конкретный объект
#42 by Живой Ископаемый
абстрактная комната и ваша комната - э то мегаэлементарная вещь, о которой знают 6-летние дети, и вам намекнули еще вчера... Еще раз - ссылку на какой именно документ вы пытаетесь взять?
#43 by Sakura
на документ Выработка
#44 by Живой Ископаемый
2 У вас в базе 1000 документов выработка... Да-да, 1000, представьте себе такую ситуацию. Это ровно в 1000 раз больше чем вы представляли до сих пор... У какого из этой 1000 документов вы пытаетесь посчитать количество строк вашим кодом?
#45 by Salvador Limones
Номер какой? От какого числа? :-)))
#46 by Живой Ископаемый
У вас в доме 1000 комнат.. как вы будете мерять площадь именно своей комнаты?
#47 by MRAK
Форма.ДокументССылка = ЭтотОбъект.Ссылка;//<<== сюда смотреть
#48 by MRAK
+ в форме дока "ЭтотОбъект.Ссылка"
#49 by Живой Ископаемый
чувствую 1000 это много...  ладно, у вас в базе 2 документа Выработка С №1 от 03.01.09 и №2 от 18.01.09 у какого именно документа вы хотите посчитать количество строк?
#50 by Живой Ископаемый
У вас в доме две комнаты... кухня и спальня... какая именно комната ваша и как вы будете мерять ее площадь?
#51 by Sakura
у второго документа. да нет, дело не том, сколько их, а в том, что я не понимаю, где именно находится различие. Не в чем оно, а где оно хранится ))
#52 by Sakura
я не знаю, к какому документу из этой 1000 мне обращаться и как (( когда был создан последний из них по дате, я тоже не знаю ((
#53 by MRAK
Можно НайтиПоНомеру... или как-то так... но лучше, как в
#54 by Живой Ископаемый
и мы не знаем... но то что вы пытались сделать - это найти количество строк у документа-менеджера... физически не бывает
#55 by Sakura
так... а предположим, я знаю дату создания последнего документа. Тогда как мне выбрать нужный?
#56 by Живой Ископаемый
см.
#57 by hhhh
тебе нужно вывести список документов на экран, пусть пользователь выберет.
#58 by Sakura
не-а, так нельзя, прога эта предназначена как раз-таки для автоматизации производства :) она считывает данные из файла, перезаписывает документ, внося туда все изменившиеся данные, и при необходимости должна информировать о том, что некоторые агрегаты пора в ремонт/на осмотр :)
#59 by MRAK
НайтиПоНомеру(<Номер документа>, <Дата интервала>) Параметры: <Номер документа> (обязательный) Тип: Число, Строка. Номер искомого документа. Тип передаваемого значения зависит от установки в конфигураторе представления номера документа. <Дата интервала> (необязательный) Тип: Дата. Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года. Параметр используется для документов с периодической нумерацией.
#60 by MRAK
но если тебе известна дата дока с точностью до секунду, то лучше запросом... однако криво все это. ты лучше сначала опредились, по каким критериям нужно найьти док.
#61 by AntonioS
а какие параметры у этой процедуры в глобальном модуле? запости код после слова процедура.
#62 by Живой Ископаемый
какой документ она должна перезаписать? из 2? Из 1000? Как она это узнает?
#63 by Живой Ископаемый
Возможно пользователь сначала открывает документ, потом из формы этого уже вполне определенного, выбранного им документа открывает форму обработки, обпаботка считывает из файла и вносит изменения в это, открытый документ, из которого она была вызвана?
#64 by Sakura
Именно так
#65 by Sakura
И теперь меня мучает вопрос, как передать некоторые значения из модуля документа в модуль обработки :)
#66 by MRAK
тогда еще раз внимательно курим
#67 by Живой Ископаемый
тогда возвращаемся к ... у тебя в обработке уже есть ссылка на открытый пользователем документ.
#68 by Живой Ископаемый
вот так: ФормаМоейОбработки.ПараметрКоторыйЯХочуПередать=ЗначениеКотороеЯхочуПередать;
#69 by AntonioS
фишка в том, что к документу надо обратиться не из обработки, а из процедуры глобального модуля. Вот и вопрос, передается ли в эту процедуру ссылка на документ или форму обработки хотя бы.
#70 by Живой Ископаемый
Ну, если она процедуру глобального модуля вызывает из обработки, то значит может передать ей ссылку
#71 by Sakura
к документу можно обратиться и из обработки, принципиальной разницы нет, где будут считываться эти значения - уже в самой процедуре, или передаваться ей из обработки в качестве параметров. В процедуру передаются обе формы, документа и обработки.
#72 by Живой Ископаемый
тогда в обработку нужно передавать не ссылку на открытый документ, а сам документ-объект, чтобы в процедуру передать именно открытый уже экземпляр фыормы, а не новую не открытую форму инициализировать и передавать
#73 by Живой Ископаемый
наверное...
#74 by AntonioS
ну тогда так <ИмяФормыДокумента так как передается в процедуру>.Сслылка.<ИмяТабЧасти>.Количество
#75 by Живой Ископаемый
ааа! молодец, действительно.. :)
#76 by Aprobator
Жесть. А перед отдачей документа в обработку он записывается? В обработке количество строк документа должно получаться так: ВладелецФормы.ДокументОбъект.ИмяТЧ.Количество или ВладелецФормы.ЭлементыФормы.ИмяТабличногоПоля.Значение.Количество.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С