Имя: Пароль:
1C
 
У кого есть функция разложения массива на пачки размером по N?
,
0 Гений 1С
 
гуру
17.03.23
14:48
собственно
146 bolobol
 
17.03.23
16:58
(145) Кстати - именно это в стиле Си, а не то что там выше Гений накодил...
147 Garykom
 
гуру
17.03.23
16:58
(144) а вот тех кто использует .Следующий пора уже того, на пенсию
есть же .Выгрузить() в ТЗ

сцуко поубивав бы кто в ТЗ не выгружает - отладка нормальная невозможна
148 Гений 1С
 
гуру
17.03.23
16:59
(143) сон разума плодит чудовищ. Видел я эти современные ВТ
149 Garykom
 
гуру
17.03.23
17:01
(147)+ а еще когда выборку из запроса как параметор передают в процедуру/функцию - это же ахтунг!!!
150 Кирпич
 
17.03.23
17:01
(147) говорят, что за ТЗ сейчас увольняют
151 bolobol
 
17.03.23
17:01
(149) Чой-та? Это ж экономия ресурсов невероятная!!
152 bolobol
 
17.03.23
17:02
(147) Обхода задуманного нет в ТЗ, Итоги, группировки... О чём Вы вообще?
153 Гений 1С
 
гуру
17.03.23
17:04
(150) отлично, в рядах фрилансеров будет больше вменяемых людей, которые знают, что стоимость разработки важнее мнимых правил оформления кода
154 Garykom
 
гуру
17.03.23
17:04
(150) Покажи код как ты проверишь что результат запроса только одна строка?
Без выгрузки в ТЗ!

Результат = Запрос.Выполнить().Выгрузить();
Если Результат.Колечество() = 0 Тогда
   Сообщить("=1");
ИначеЕсли Результат.Колечество() = 1 Тогда
   Сообщить("=1");
Иначе
   Сообщить(">1");
КонецЕсли;
155 Fish
 
17.03.23
17:04
(152) (151) Ну не умеет человек нормально работать с запросами, что ж поделать. Зато он умет ветку-ветку в Гите добавлять :)))
156 Гений 1С
 
гуру
17.03.23
17:04
(154) у резульатазапроса есть метод Пустой
157 Garykom
 
гуру
17.03.23
17:04
(152) Ты в курсе про?
ДеревоЗнач = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
158 Garykom
 
гуру
17.03.23
17:05
(155) ты не умничай, ты свой код без выгрузки в ТЗ покажи аналог (154)
159 Гений 1С
 
гуру
17.03.23
17:07
(158) для сравнения с нулем пустой. Далее делаешь выборку, а не выгрузку и все. о чем спич?
160 Гений 1С
 
гуру
17.03.23
17:07
РезультатЗапроса (QueryResult)
Пустой (IsEmpty)
Синтаксис:
Пустой()
Возвращаемое значение:
Тип: Булево.
Истина - нет ни одной записи; Ложь - в противном случае.
161 Garykom
 
гуру
17.03.23
17:08
(159) стандартная ситуация когда запросом ищем нечто в базе
и надо разные действия если не нашло совсем (ошибка плохо, не нашло)
когда нашло 1 (все отлично, работаем)
и когда нашло >1 (ошибка плохо, нашло много)
162 mikecool
 
17.03.23
17:09
(147) вон из профессии в ГО )
163 Fish
 
17.03.23
17:09
(158) В (154) какой-то тупой быдлокодерский ахтунг. Даже не знаю, зачем это может понадобиться.
164 Garykom
 
гуру
17.03.23
17:09
(160) а теперь добавь к (161) что тебе в ошибки надо вывести которые "много"
165 Fish
 
17.03.23
17:10
(161) Это делается сразу запросом, а не адским быдлокодом из (154) :))))
166 mikecool
 
17.03.23
17:10
(154) у выборки есть метод Количество()
167 Garykom
 
гуру
17.03.23
17:11
(163) для (161) - частая стандартная ситуация при любых загрузка-синхронизациях
когда по уид, коду, наименованию нашелся не один объект а не одного или много

и да часто видел когда берут первый попавшийся а потом фигеют от глюков
168 Гений 1С
 
гуру
17.03.23
17:11
(167) (166) отож, количество у Выборки
169 Fish
 
17.03.23
17:11
(166) Ну или через выборку.
170 Garykom
 
гуру
17.03.23
17:11
(166) в курсе
но тогда код превращается без выгрузки в ТЗ в нечто странное
171 Fish
 
17.03.23
17:12
(170) Нет, не превращается.
172 Garykom
 
гуру
17.03.23
17:12
да я знаю что промежуточная выгрузка в ТЗ жрет память и время
но экономит код и время при отладке/доработке
173 Garykom
 
гуру
17.03.23
17:12
(171) покажи?
174 mikecool
 
17.03.23
17:12
(170) ты о чем? Оо
175 Кирпич
 
17.03.23
17:13
(170) какие то вы с гением манерные. нравится... не нравится... странное...
176 Garykom
 
гуру
17.03.23
17:13
(174) покажи уже аналог кода (154) без ТЗ
177 Fish
 
17.03.23
17:13
(173) Что тебе показать? Как работать с выборкой? Сходи на курсы 1С, там тебя обучат, как правильно писать на 1С.
178 mikecool
 
17.03.23
17:14
Выборка = Запрос.Выполнить().Выбрать();
КолвоЗаписей = Выборка.Количество();
дальше продолжать?
179 Кирпич
 
17.03.23
17:14
(172) ты нормальный вабще? если у тебя в ТЗ упадет 500000 строк только ради того, чтобы ты проверил одна там запись или не одна :)))
180 Garykom
 
гуру
17.03.23
17:15
(175) да не нравится
когда в ERP УХ в отладчики в километрах кода по десяткам модулей ковыряешься

и когда у тебя .Выбрать() в одном модуле а .Следующий() разбросано по куче других...
181 mikecool
 
17.03.23
17:15
(179) на Го об этом не задумываются ))
182 Fish
 
17.03.23
17:15
(154) Кстати, несколько раз выполнять метод Количество() - это быдлокод :))
183 mikecool
 
17.03.23
17:15
(180) это только твои трудности )
184 mikecool
 
17.03.23
17:15
(182) для коллекции не принципиально, но считается да
185 Garykom
 
гуру
17.03.23
17:16
(179) если нужная обработка этих 500000 строк то один фиг их придется ксть в ТЗ или в другие структуры
и вот средствами платформы разом класть быстрей
186 Garykom
 
гуру
17.03.23
17:16
(185) *класть
187 mikecool
 
17.03.23
17:16
(180) а прикинь - еще НайтиСледующий и СледующийПоЗначениюПоля )))
188 mikecool
 
17.03.23
17:16
(185) зачем? обрабатывай последовательно
189 Garykom
 
гуру
17.03.23
17:17
(182) да обычно КоличествоРезультатов сначала делаю а уже затем по нему условие
190 Fish
 
17.03.23
17:17
(185) Зачем в ТЗ, если есть выборка? Ты правда не знаешь, как работать с выборкой, или придуриваешься?
191 magicSan
 
17.03.23
17:18
(110) причем тут сишники? это классика.
192 Garykom
 
гуру
17.03.23
17:19
(188) бывают разные ситуации
например надо отобрать из результата только которые
тогда код

ТЗ = Запрос.Выполнить().Выгрузить();
МассивСтрок = ТЗ.НайтиСтрок(Отбор);

намного логичней
193 lodger
 
17.03.23
17:19
(185) >>платформы разом класть быстрей
вот тут ты прав на все 100, потом говорят что сервер 1с обожрался памяти и исдох.
194 Garykom
 
гуру
17.03.23
17:20
(190) Покажи уже класс как работать с выборкой!!!
Ну напиши аналог (154)
195 Fish
 
17.03.23
17:21
(192) Бывают, не спорю. Есть отдельные ситуации, когда выгрузка результата в ТЗ будет оптимальнее. Но в (147) ты написал совсем другое ты написал, что ТЗ всегда надо использовать, а это бред.
196 lodger
 
17.03.23
17:21
(192) если у тебя разные отборы накладываются к одной такой выгрузке, то вроде и ладно.
но если ты это делаешь единожды, то не проще сразу уменьшить результирующий запрос оператором ГДЕ?
197 mikecool
 
17.03.23
17:21
(194) я тебе в (178) написал, чего еще надо?
198 Garykom
 
гуру
17.03.23
17:21
(195) для отладки ТЗ удобней
всегда можно ее целиком глянуть или выгрузить и покрутить
199 magicSan
 
17.03.23
17:22
(192) это глупо, тебе вернули данные которые ты очевидно будешь обрабатвать полностью - поэтому нужно упорядочить и последовательно а не через найтпистроки
200 Fish
 
17.03.23
17:23
(194) Я повторюсь: сходи уже на курсы по 1С. Думаю, курсы для новичков вполне подойдут, таким элементарным вещам, по-моему уже там учат.
А аналог (154) без ТЗ тебе уже написали, но ты, похоже, даже не понял этого :))))
201 Кирпич
 
17.03.23
17:23
(198) ну так и используй для отладки. только не забывай убирать
202 mikecool
 
17.03.23
17:23
(198) для отладки всегда можно рассчитать Выгрузить и посмотреть
203 Fish
 
17.03.23
17:23
(197) Видимо, не осилил :)))
204 Garykom
 
гуру
17.03.23
17:23
(197) 1. вопрос (194) был не к тебе а к Fish
2. Это не аналог а хрень
205 Fish
 
17.03.23
17:24
(202) Сейчас выяснится, что мастер веток-веток не умеет и отладчиком пользоваться :)))
206 lodger
 
17.03.23
17:24
(154) чем тебя так ломает работать с интерфейсом выборки? это тоже некая таблица, только в памяти сервака, и ты её не выгружаешь в ТЗ ещё раз на такой же размер памяти.

РезультатЗ = Запросище.Выполнить();
Если РезультатЗ.Пустой() Тогда
    Возврат "пусто"
Иначе
    ВыборкаЗ = РезультатЗ.Выбрать();
    Если ВыборкаЗ.Количество() = 1 Тогда
        Возврат "Тут 1 строка";
    Иначе
        Возврат "Тут много строк";
    КонецЕсли;    
КонецЕсли;
207 mikecool
 
17.03.23
17:24
(204) ты что то совсем гонишь )))
208 Garykom
 
гуру
17.03.23
17:24
(197) >я тебе в (178) написал, чего еще надо?

ты получение элементов покажи дальше ))
чтобы вывести в ошибку
209 Fish
 
17.03.23
17:25
(208) Ну вот тебе в (206) написали. Зачем там элементы получать?
210 Garykom
 
гуру
17.03.23
17:25
(206) а сами значения как получить и вывести?
211 Лирик
 
17.03.23
17:26
Кстати, вот вариант с запросом:

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка,
    |    АВТОНОМЕРЗАПИСИ() КАК НомерЗаписи
    |ПОМЕСТИТЬ Таблица
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Таблица.Ссылка,
    |    ЦЕЛ(Таблица.НомерЗаписи / &РазмерПорции) КАК ИндексПорции
    |ИЗ
    |    Таблица КАК Таблица";
212 mikecool
 
17.03.23
17:26
(208) каких элементов? Следующий() и в путь
или НайтиСледующий или СледующийПоЗначениюПоля
213 Fish
 
17.03.23
17:26
(210) Ты правда не знаешь? Охренеть :)))
214 mikecool
 
17.03.23
17:27
+212 НайтиСледующий и структуру принимает
215 Garykom
 
гуру
17.03.23
17:27
(213) знаю

и знаю что без ТЗ код превращается в нечто странное в этом случае
216 mikecool
 
17.03.23
17:27
(213) троллит наверное, жирный Гарик ))
217 Fish
 
17.03.23
17:27
(216) Да я тоже подозреваю, что троллит. :))
218 Кирпич
 
17.03.23
17:28
(213) в Go такого нету
219 bolobol
 
17.03.23
17:28
Полноценная пятничная ветка получилась)) Один массив массивов из запроса-запроса получить, второй что из запроса вообще ничего не получить...
220 Кирпич
 
17.03.23
17:28
(217) да бухой он. пятница же
221 Garykom
 
гуру
17.03.23
17:28
(216) покажи как в случае результат запроса >1 строки получить строки со 2 до последней без ТЗ
222 Fish
 
17.03.23
17:29
Хотя работа с выборкой - это тебе не пулл реквесты в бранчи коммитить  - тут хоть немного соображать надо :))))
223 bolobol
 
17.03.23
17:29
(221)
Если Следующий() Тогда одна строка
Если Следующий() - тогда тут много ещё строк
224 Garykom
 
гуру
17.03.23
17:29
(220) нет, просто заипался при отладке "типового" кода ERP УХ
225 Garykom
 
гуру
17.03.23
17:31
(224)+ например попробуйте (в ERP/КА/УТ11) в печформу УПД/УКД свою колонку добавить и заполнить ее данными из документа ))
226 Garykom
 
гуру
17.03.23
17:32
(222) >пулл реквесты в бранчи коммитить

ты в курсе что хрень написал?
227 Кирпич
 
17.03.23
17:32
(224) да брось ты. пускай 1С сама свой код отлаживает. Давай с гением массивы делить. Изящно и в стиле Си.
228 Garykom
 
гуру
17.03.23
17:32
(223) муахаха
229 Garykom
 
гуру
17.03.23
17:35
(227) я не думаю что много 1Сников сможет с лету разобраться в массивах, срезах и картах из Го
230 Кирпич
 
17.03.23
17:37
(229) Думаешь, что если ты с лёту не разобрался, то и другие не смогут? Тебя гений не укусил случайно?
231 mikecool
 
17.03.23
17:40
(229) я норм разобрался в объектах питона, причем слету )))
не суди по себе )))
232 mikecool
 
17.03.23
17:42
+231 вот чего я так и не понял в 2005, как в нет с делегатами работать ))
233 magicSan
 
17.03.23
17:42
(231) я тоже со второго раза осилил яндекс практикум за вечер, через месяц правда всё забыл. Ну задачи которые ставил под него решил.
234 Garykom
 
гуру
17.03.23
17:42
я всего то высказался о своем личном опыте кодинга на 1С
что через ТЗ получается намного проще, понятней и удобней в будущем при доработке и отладке
235 Garykom
 
гуру
17.03.23
17:43
(232) >как в нет с делегатами работать
это как ОписаниеОповещения в 1С
236 Garykom
 
гуру
17.03.23
17:45
(234)+ и признаю что иногда нет смысла делать через ТЗ
и можно банально обойти выборку запроса через Следующий()
237 mikecool
 
17.03.23
17:50
(235) да знаю подсознательно, но в том году мне кореш объяснял - я был не готов к этому знанию
238 Кирпич
 
17.03.23
17:55
(237) чо там понимать. ссылка на метод
239 Гена
 
гуру
17.03.23
17:55
В мужском споре важен каждый сантиметр
240 Кирпич
 
17.03.23
17:57
(239) побеждает тот, кто в конце заявит "А, вы про сантиметры? Я то в дюймах говорил."
241 Garykom
 
гуру
17.03.23
17:59
(240) эээ у меня в вершках
242 Garykom
 
гуру
17.03.23
18:01
(241)+ у меня сервер аж 6 вершков
243 bolobol
 
17.03.23
18:17
Самое главное - корешок, а не вершок
244 magicSan
 
17.03.23
19:26
(236) если это не тиражное решение то надо тз - там всё сильно быстрее будет чем ваши выборки.
245 novichok79
 
17.03.23
19:50
переходи на голанг, там можно одной строчкой порезать слайс.