Имя: Пароль:
1C
1С v8
Обход и вычисление табличной части
🠗 (Волшебник 24.05.2018 13:53)
,
0 Stanislav Prihodko
 
24.05.18
08:27
Всем привет. Хотел бы спросить у вас, обход табличной части осуществляется только через цикл Для Каждого Из Цикл и как происходит вычисление количества строк в табличной части, я пишу диплом и прошу у вас совета
99 dezss
 
24.05.18
10:41
(98) на сервере без контекста нет контекста...
там нет твоего Объект
100 Stanislav Prihodko
 
24.05.18
10:42
(99) Ну, а как тогда вызвать? Я понял это, но как теперь вызвать чтобы посчитало
101 igorPetrov
 
24.05.18
10:42
(98) фу, толсто уже.
102 Stanislav Prihodko
 
24.05.18
10:47
(101) Не заходи в эту тему тролль, ты только вреда в этой теме наносишь и мешаешь нормальным людям
103 igorPetrov
 
24.05.18
10:49
(102) ты это сам себе говоришь?))
104 Stanislav Prihodko
 
24.05.18
10:49
(101) Почему администраторы или модераторы не блочат вот такой спам с одними оскорблениями и пустыми словами, которые не помогают?
105 igorPetrov
 
24.05.18
10:50
(104) Тебе уже помогли. Дальше думай сам. Готового решения не будет.
106 igorPetrov
 
24.05.18
10:51
(104) Оскорбляешь на самом деле ты, отвлекая людей и не желая слушать, что тебе говорят и учиться.
107 Stanislav Prihodko
 
24.05.18
10:51
Можно правильный пример, как подсчитать строки?
108 hhhh
 
24.05.18
10:52
(104) помощь вообще-то тут нахрен никому не нужна. Форум существует для общения. Мы тут общаемся, обсуждаем разные проблемы. Если тебя не устраивает, иди лесом.
109 igorPetrov
 
24.05.18
10:53
(107) тебе уже сто раз сказали как, что еще?
110 Stanislav Prihodko
 
24.05.18
10:54
(108) Одно дело общаться, а другое быть выскочкой и писать во все темы оскорбляя и спамя ненужные свои слова
111 dezss
 
24.05.18
11:02
(107) Количество()
а если нет Объекта, так передай его туда...
112 igorPetrov
 
24.05.18
11:04
(110) Вот ты и прокололся)) у тебя только одна тема, о каких всех темах идет речь?
113 Stanislav Prihodko
 
24.05.18
11:05
(112) Куда не посмотришь, ты везде и спамишь всякую херь, веди дальше монолог сам с собой.
114 igorPetrov
 
24.05.18
11:06
(113) врешь)))
115 lodger
 
24.05.18
11:06
(110) так у тебя же одна тема на этом аккаунте. палишься.
116 Stanislav Prihodko
 
24.05.18
11:07
(111) Я же не могу написать Количество(Объект.Уроки)
117 igorPetrov
 
24.05.18
11:07
(115) +100)))
118 igorPetrov
 
24.05.18
11:07
(116) да он просто издевается, нельзя быть таким дураком )
119 Stanislav Prihodko
 
24.05.18
11:07
(115) От кого, от чего, вы че несете? У меня одна тема, а сидеть и читать я на форуме не могу что ли? И не могу видеть кого-то слова? Ребят лучше помогите, чем нести чушь какую-то
120 igorPetrov
 
24.05.18
11:08
(119) не психуй)
121 igorPetrov
 
24.05.18
11:08
(119) тебе уже помогли, повторяю. Все ответы в теме есть.
122 Stanislav Prihodko
 
24.05.18
11:10
Можно правильный пример, как подсчитать строки? Чтобы вызывалось Количество(), потому что я делаю так: ТабличнаяЧасть.Количество() и он не считает, помогите пожалуйста
123 igorPetrov
 
24.05.18
11:11
(122) врешь.
124 Stanislav Prihodko
 
24.05.18
11:15
(122) Там даже через ссылку (точку) ничего не вызывается.

&НаСервереБезКонтекста
Процедура ПередЗаписьюНаСервере()
    Количество(Объект.КурсовыеРаботы);
КонецПроцедуры


{Документ.План.Форма.ФормаДокумента.Форма(78,13)}: Переменная не определена (Объект)
    Количество(<<?>>Объект.КурсовыеРаботы); (Проверка: Сервер)
{Документ.План.Форма.ФормаДокумента.Форма(78,2)}: Процедура или функция с указанным именем не определена (Количество)
    <<?>>Количество(Объект.КурсовыеРаботы); (Проверка: Сервер)
125 _stay true_
 
24.05.18
11:16
(122) что-то тут не такь
(107) количество строк считается тебе уже объяснили как, методом Количество().
(124) &НаСервереБезКонтекста  исправь на &НаСервере
126 dezss
 
24.05.18
11:16
(124) да твою ж мать...
Количество() - это метод!!!!
Ты либо действительно жиный троль, либо двоечник и нифига не понимаешь не только в ООП, но и в терминологии ООП.
127 dezss
 
24.05.18
11:17
(125) нульзя...у него там какой-то не такой вызов, конструктор не позволяет создать автоматом НаСервере. Если сделать вручную, то пойдут глюки.
128 _stay true_
 
24.05.18
11:17
(124) И ёк-макарёк, так сделай: КолСтрок = Объект.КурсовыеРаботы.Количество(); и будет счастье
(126) [цензура] (124)
129 _stay true_
 
24.05.18
11:18
(127) я просто всю ветку не читал. Нельзя так нельзя. Ещё лучше)
130 igorPetrov
 
24.05.18
11:20
Вот и вопрос вопросов - дурак ТС или тролль?
Наплевать, конечно. Но так спортивный интерес))))
131 3achem
 
24.05.18
11:21
Вызовите волшебника, пусть забанит тролля
132 igorPetrov
 
24.05.18
11:22
(131) Один акк уже забанен у него))
133 Stanislav Prihodko
 
24.05.18
11:23
(128) Спасибо большое, но Объект.КурсовыеРаботы.Количество(), после слова Объект через ссылку(точку) у меня дальше ничего не вызывается это значит неправильно?
134 Stanislav Prihodko
 
24.05.18
11:24
(131) Зачем меня банить и причем я тут тролль? У меня реально не получается сделать
135 igorPetrov
 
24.05.18
11:26
"я тут тролль" - сознался. Или просто альтернатива не нравится.))
136 bolobol
 
24.05.18
11:33
(134) Позовите программиста?
137 Dotoshin
 
24.05.18
11:33
(133) А ты где это пишешь?
Попробуй в модуле объекта, в процедуре ПриЗаписи, написать

КоличествоСтрок = КурсовыеРаботы.Количество();
138 Stanislav Prihodko
 
24.05.18
11:39
(137) Я хотел еще спросить, как перебором посчитать количество строк в табличной части
139 Stanislav Prihodko
 
24.05.18
11:40
(137) &НаСервереБезКонтекста
Процедура ПередЗаписьюНаСервере()
    //КолСтрок = Объект.КурсовыеРаботы.Количество();
    


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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    ПередЗаписьюНаСервере();    
КонецПроцедуры

Вот как покамись у меня :/
140 Dotoshin
 
24.05.18
11:41
(138) Стесняюсь спросить, зачем?
141 Stanislav Prihodko
 
24.05.18
11:43
(140) Мне для примера напишите пожалуйста, чтобы я понял
142 Stanislav Prihodko
 
24.05.18
11:43
(140) + по разному пробую
143 Dotoshin
 
24.05.18
11:45
(142) см. (7)
144 Stanislav Prihodko
 
24.05.18
11:48
(143) Для каждого Стр Из ТЧ Цикл

    //...


КонецЦикла;

вот допустим, а что внутри писать я имею ввиду, что должно быть?
Стр = Стр + 1; ?
145 Dotoshin
 
24.05.18
11:50
(144) А какие еще варианты могут быть?
146 Stanislav Prihodko
 
24.05.18
11:50
(145) Больше не знаю :)
147 Ненавижу 1С
 
гуру
24.05.18
11:52
Колво = 0;

Для каждого Стр Из ТЧ Цикл

   Колво = Колво+1;

КонецЦикла;
148 Stanislav Prihodko
 
24.05.18
11:52
(145)
КолСтр = 0;
Для каждого строкаТ из ТвояТабЧасть цикл
  КолСтр  = КолСтр + ТаблПоле.ПроверитьСтроку(строкаТ )
КонецЦикла;

Что-то наподобие, но для поля, а мне для табличной части надо
149 фросия
 
24.05.18
11:52
(138) для каждого строка из таблица количество = количество +1

Ппц
150 Dotoshin
 
24.05.18
11:55
(148) У тебя интерес чисто академический или ты тупо народ хочешь повеселить?
Попробуй уже выполнить этот код и почитать, что о тебе думает конфигуратор.
151 alxxsssar
 
24.05.18
11:57
(148) Что возвращает у тебя проверитьстроку()? Зачем???? в(147) все правильно, что надо еще? Копипасти и будет тебе счастье
152 Stanislav Prihodko
 
24.05.18
12:10
Вот как получилось
&НаСервереБезКонтекста
Процедура ПередЗаписьюНаСервере()
КоличествоСтрок = 0;
    Для Каждого Строка Из Дисциплины Цикл
        КоличествоСтрок = КоличествоСтрок + 1;
        КоличествоСтрок.Количество();
    КонецЦикла;

КонецПроцедуры
153 Dotoshin
 
24.05.18
12:14
(152) Не зачет. Где комментарии?
154 фросия
 
24.05.18
12:17
Зачем количествострок.количество()
155 Stanislav Prihodko
 
24.05.18
12:20
(154) Я просто написал где надо чтобы контроль выполнялся когда в табличной части меньше двух полей и дата документа меньше текущейдаты, и поэтмоу я написал там, но тут дописал:


Если КоличествоСтрок.Количество()<2 ИЛИ Документы.Дата<ТекущейДаты() Тогда
///
КонецЕсли;

Только не знаю как написать дату документа
156 Stanislav Prihodko
 
24.05.18
12:31
Как мне заменить Документы.Дата на Дату документа?
157 фросия
 
24.05.18
12:33
(156) ввести с клавиатуры
копи-паст
158 Dotoshin
 
24.05.18
12:35
(156) А Документы.Дата чем не устраивает?
159 Stanislav Prihodko
 
24.05.18
12:38
(158) Когда пишу Документы.(Ссылаюсь) то выдает 2 варианта:
ТипВсеСсылки и реквизит документа, нет Даты поэтому, не устраивает = не работает, если не вызывается как я понял
160 фросия
 
24.05.18
12:39
(159) нет даты- а что есть?
161 фросия
 
24.05.18
12:39
почитай сто СП говорит про Документы?
162 Stanislav Prihodko
 
24.05.18
12:44
(161) Посмотрел и ничего
163 alxxsssar
 
24.05.18
12:44
думаю тебе надо написать объект.дата
(152) количествострок.количество() убирай нафиг. У тебя после цикла количествострок останется с сформированным значением
164 Stanislav Prihodko
 
24.05.18
12:45
(163) А как тогда мне в условие его написать?
165 Stanislav Prihodko
 
24.05.18
12:46
Ну мол Если А Или б тогда
//вывести сообщение
КонецЕсли;
166 фросия
 
24.05.18
12:48
(164) в условии что с чем сравниваешь?
167 _stay true_
 
24.05.18
12:50
(0)За это сейчас диплом дают? ВУЗ, специальность и кафедра какая?
168 Stanislav Prihodko
 
24.05.18
12:51
(166) Получается мне условие надо сделать так, когда в табличной части Уроки меньше двух полей или дата документа меньше текущей даты выводить сообщение:"Привет", вот и думаю какое сделать
169 Stanislav Prihodko
 
24.05.18
12:51
(167) Нет, у нас закончилось по 1Су обучение такое внешнее, а я хочу быть разрабом и попросил чтобы преподы закидали заданиями и прочими материалами, вот и сижу занимаюсь и делаю задания
170 фросия
 
24.05.18
12:56
(169) тогда бери книжку радченко и вперед.
171 фросия
 
24.05.18
12:57
дата документа меньше текущей даты
вот напиши что с чем сравнивать будешь?
172 Dotoshin
 
24.05.18
13:00
(159) ИмяТвоегоДокумента.Дата попоробуй
173 Stanislav Prihodko
 
24.05.18
13:05
(172) Через . не вызывается, значит неправильно?
174 фросия
 
24.05.18
13:06
(173) что такое документ?
175 Dotoshin
 
24.05.18
13:09
(173) Ссылка.Дата попробуй...
176 bolobol
 
24.05.18
13:12
Забавно наблюдать кормление тролля....

Боюсь спросить, а "&НаСервереБезКонтекста" - количество строк чего ты пытаешься получить полным перебором чего?
177 Stanislav Prihodko
 
24.05.18
13:20
(176) Действительно, мне же делать нефиг столько часов просто на форуме сидеть и якобы по вашим словам троллить, любой тролль ты устал уже наверное.
178 bolobol
 
24.05.18
13:26
Прозрачнее некуда - на конкретно поставленный вопрос был получен ответ, полностью игнорирующий вопрос.
179 Stanislav Prihodko
 
24.05.18
13:33
(176) Мне так сказали сделать, поэтому и делать пытаюсь перебором
180 _stay true_
 
24.05.18
13:35
(169) Хочешь быть разрабом - кури курс "Введение в конфигурирование", книжки Радченко и Хрусталёвой типа "Профессиональная разработка в среде 1С: Предприятие", устройся во франч. И город изучишь, и реальные вещи руками потрогаешь. Если дадут
181 drei
 
24.05.18
13:37
(152) >  Для Каждого Строка Из Дисциплины Цикл

Где-то я это уже такого видел.
182 drei
 
24.05.18
13:38
(169) > а я хочу быть разрабом

Не разделяю твоего желания.
183 тарам пам пам
 
24.05.18
13:38
(180) Тут скорее нужен базовый курс вообще по программированию - что такое переменная, что такое процедура/функция, циклы/ветвления/операторы; из нужно ООП хотя бы понятие объекта.
Пациент явно либо тролль, либо дурак - в этих ваших интернетах уже не отличить.
184 bolobol
 
24.05.18
13:39
(181) В этой теме - каждое восьмое сообщение. И, говорят, ещё одну такую тему вместе с троллем забанили, ибо - день сурка на каждом восьмом сообщении.
185 _stay true_
 
24.05.18
13:40
(168) имелось ввиду меньше двух строк в ТЧ?
Если да, то как-то так.

1. Скопипасть, подправь под свои имена объектов;
2. Поставь точку останова;
3. Запусти выполнение кода, чтобы попало в точку.
4. Выдели, к примеру, "Объект", клик правой - вычислить выражение и посмотри, что у тебя непосредственно при выполнении кода происходит

Если Объект.Уроки.Количество()<2 И Объект.Дата < ТекущаяДата() Тогда

    Сообщить("Миста - сила, остальные - [цензура]");

КонецЕсли;
186 alxxsssar
 
24.05.18
13:42
(164) если количествострок < 2 - вот и все условие
187 Stanislav Prihodko
 
24.05.18
13:51
(183) Я программирование знаю, я просто не привык к 1С + я не знаю как здесь брать данные, в той же Джаве и с++ классы спокойно вытянул и объекты и всё
188 фросия
 
24.05.18
13:52
(187) не знаешь
перебрать строки массива и получить их количество это не привычка к 1с
189 Stanislav Prihodko
 
24.05.18
13:57
(188) Ну я базовые вещи знаю, те же массивы, а это уже задание
190 Dotoshin
 
24.05.18
14:01
(189) А теорию БД знаеешь?
191 Stanislav Prihodko
 
24.05.18
14:07
(190) Базовые знания
192 bolobol
 
24.05.18
14:08
Давай попробуем:


класс цэОбъект
{
класс цэСтрокаТабличнойЧасти{...};

класс цэТабличнаяЧасть
{
привэйт:
цэСтрокаТабличнойЧасти **СтрокаТабличнойЧасти;

паблик:
инт функшон Количество(){ ретурн сайзоф СтрокиТабличнойЧасти; };

цэСтрокаТабличнойЧасти оператор[](инт Индэкс){ ретурн СтрокаТабличнойЧасти[Индэкс]; }
} ТабличнаяЧасть;

};

// Даны процедуры для работы:

войд НаСервереБезКонтекста() {};
войд НаСервере(цэОбъект ЭтотОбъект) {};
войд НаКлиенте(цэОбъект ЭтотОбъект) {};


Теперь стало понятнее?
194 _stay true_
 
24.05.18
14:24
(192) Братан, ты сделал мой день!!!))) Скопипастил себе. Распечатаем, заламинируем и повесим в офисе)))
(193) А вот ругаться не хорошо. Ух как не хорошо.
Тебе вроде всё разжевали и даже примеры кода дали.
Кури мат.часть
195 dezss
 
24.05.18
15:43
ОФФ:
а не волшебник ли был нашим троллем?)))
196 bolobol
 
25.05.18
10:12
По инерции - собственное имя использовал? Проверял лояльность форумчан, жаждал крови?
Ибо вряд ли бы утопил ветку, если б накрутить рекламы хотел
197 dezss
 
25.05.18
10:37
(196) не, просто пятничное настроение...а имя для острастки и внимательных...
198 dezss
 
25.05.18
10:37
(196) просто странно, что ТС еще не забанен...