Имя: Пароль:
1C
1C 7.7
v7: Как получить тип документа в выборке
0 Enlighted
 
26.07.23
02:03
СписокВозвратов = СоздатьОбъект("Документ.ВозвратСсуды");
СписокВозвратов.ВыбратьДокументы(НачДата, КонДата);
    
Пока СписокВозвратов.ПолучитьДокумент() = 1 Цикл
        
    НомерЗБ = СписокВозвратов.Основание;
    ТипДокумента = СписокВозвратов.Идентификатор; // Ругается на эту строку
    ОстатокПоСсуде = СписокВозвратов.Остаток;
        
    НоваяСтрока();

КонецЦикла;

Как получить идентификатор документа? Хочу посмотреть содержимое выборки.
1 Aleksey
 
26.07.23
03:25
что такое "идентификатор документа"
2 Nucky
 
26.07.23
04:27
ИндентификаторДокумента = СписокВозвратов.ТекущийДокумент();
Это?
3 AAA
 
26.07.23
04:27
У документа есть Вид(), он же идентификатор объекта метадвнных, но что его смотреть, Вы сами явно задали его при создании объекта. Больше ничего не увидите.
4 AAA
 
26.07.23
04:28
(2)это ссылка )
5 AAA
 
26.07.23
04:35
(1)что такое "содержимое выборки", что Вы узнать хотите ?
6 Bigbro
 
26.07.23
05:33
ТипДокумента = "ВозвратСсуды";
вот так не будет ругаться.
7 Enlighted
 
26.07.23
08:21
(1) Это его название. Например: Приходный ордер, расходный ордер, перемещение со склада...
(2) Не совсем, это название документа, что это за документ такой, приходник, расходник или что это вообще.
(3) Я его задал это да, однако если я его в выборке не задам, как я его посмотреть могу вообще?
(4) Мне не нужна ссылка на конкретный документ, мне нужно его название.
(6) Это вы мне строку ручками предлогаете ввести, а если в выборке разные виды документов за период, то как я узнаю какой из них какой?
8 Bigbro
 
26.07.23
08:24
ну если там будут разные виды документов то можно написать
ТипДокумента = СписокВозвратов.Вид();
9 Андрей_Андреич
 
naïve
26.07.23
08:25
(7) Чтобы в выборке были все документы надо
СписокВозвратов = СоздатьОбъект("Документ");
Вид документа СписокВозвратов.Вид()
Блин - до сих пор в семерку джуны идут. Смысл?
10 Irbis
 
26.07.23
08:28
(9)Скорее их мордой тыкают в то что есть, а мануал читать ещё не научились. А ЖКК давно скурили или сдали в макулатуру.
11 Андрей_Андреич
 
naïve
26.07.23
08:29
(10) По-видимому аникейщиков подпрягают
12 Bigbro
 
26.07.23
08:31
у меня старая контора 4 месяца уже без 1сника живет
походу так и не найдут никого за те бабки что готовы платить
постепенно функциональность отваливаться начинает.
где-то через год обычно наступает критическая фаза ((
13 Андрей_Андреич
 
naïve
26.07.23
08:34
(12) Имеешь шанс поддерживать за денежку (когда дозреют)
14 Kigo_Kigo
 
26.07.23
08:38
(12) Ога а потом за охулард денег делают переходи на 8-ку и с криками, нихера не работает берут восьмереочнего за ахулиард денег, никогда такого не было и вот опять...
15 Андрей_Андреич
 
naïve
26.07.23
08:40
(14) Так один не справится - надо помощника. Как в "Формуле любви" кузнец
16 АгентБезопасной Нацио
 
26.07.23
08:43
(12) "период полураспада базы при отсутствии программиста равен 6 месяцам"© кто-то из мисты
17 Kigo_Kigo
 
26.07.23
08:45
(15) и еще + 2 внешника :)
18 Bigbro
 
26.07.23
08:45
(13) не вариант, там слишком большой функционал надо в голове держать, сложная система, куча интеграций, которые еще и периодически меняются, разрастаются.
в эту тему прямо погружаться надо, ну как минимум на полставки, чтобы ежедневно 2-3-4 часа какие то задачи делать.
иначе выпадаешь, потом на погружение/воспоминание что к чему начинает уходить непропорционально много времени.
19 АгентБезопасной Нацио
 
26.07.23
08:45
(12) а почему функциональность "начинает отваливаться"? у меня почти три года проработали без клюшечника, я только три раза вмешивался.
20 Bigbro
 
26.07.23
08:48
(19) потому что система интегрирована с кучей всякого внешнего, которое нащадно и без учета интеграций меняют.
порой меняют радикально - например перенося базы данных на другую площадку и отрубая доступ через COM по которому шла основная перекачка данных.
21 Bigbro
 
26.07.23
08:49
части данных нет - у тебя уже другая часть функций отваивается которая была завязана на эти данные... и так далее как доминошки.
22 GrayS19
 
26.07.23
10:09
вы все предлагаете Вид(), который вернёт "ВозвратСсуды". А автору нужно Представление() = "Возврат ссуды" из метаданных
23 GrayS19
 
26.07.23
10:25
точнее ПредставлениеВида()
24 Bigbro
 
26.07.23
10:31
с представлениями лучше не связываться до конечной стадии показа пользователю результата. во всех промежуточных алгоритмах я бы вид использовал.
а то всякое бывает.
25 Enlighted
 
26.07.23
10:35
(9) (22) Благодарю и то и то пойдёт.
(9) Я эту конфигу лет 7 назад допиливал под запрос. Да по сути эникейщик, как сказанно выше, и не варюсь в 1с вообще, поэтому всё что писал забыл.
26 Enlighted
 
26.07.23
10:41
Тогда попутно ещё вопрос если не сложно, как убрать документы из выборки?
Костыль типа создать промежуточную таблицу и занести туда по критериям. А прямо из выборки как-то можно?
27 Андрей_Андреич
 
naïve
26.07.23
10:43
(26) По журналу выбрать? Если есть журнал где только нужные виды документов
28 Enlighted
 
26.07.23
10:44
(27) Нет, вот выше уже выборка есть по дате, и типу документа, а теперь надо из неё убрать по некоторым критериям документы
29 Builder
 
26.07.23
10:46
(28)
1. Обрабатывать выборку и ненужные пропускать.
2. Написать запрос и там сделать нужный отбор.
30 Enlighted
 
26.07.23
10:49
Я попробовал ВыбратьПоЗначению, но оно работает только с общими значениями всех документов. По конкретному значению скажем "сумма" не работает. А в мою выборку попадают вообще все документы одного типа за период, вот мне и надо в ней убрать ненужные.
31 Bigbro
 
26.07.23
10:51
открой для себя запросы в 1с
в них можешь отобрать все что угодно
и по видам и по реквизитам и вообще все на что фантазии хватит.
32 Enlighted
 
26.07.23
10:56
(31) Ээх так не хотелось ради одного документа лезть в дебри тундры. Если встроенным языком никак, то придётся
33 АгентБезопасной Нацио
 
26.07.23
10:59
(32) можно и встроенным языком. Но длиннее (хотя не факт, что дольше). И язык запросов - такой же "встроенный язык", только другой.
34 АгентБезопасной Нацио
 
26.07.23
11:00
(31) но в клюшках штатные запросы порой вызывают изрядный геморрой.
35 Builder
 
26.07.23
11:01
(32) Ну можно и встроенным, но запросом понятнее :)
Например так
Пока СписокВозвратов.ПолучитьДокумент() = 1 Цикл
  Если СписокВозвратов.Сумма > 1000 Тогда
        Продолжить;
  КонецЕсли

// тут свои условия пишешь и не нужное отсекаешь


КонецЦикла;
36 Enlighted
 
26.07.23
11:06
(35) Сам цикл я так и представлял, я команду не знаю, которой документ из выборки убирается.
Вот выборка есть вы предлагаете перебирать (это ясно) по одному документу и сравнивать некоторое условие. Это тоже ясно, не ясно, как из этой выборки убрать документы которые (не соответствуют/соответствуют) условию. Ведь после этого цикла выборка останется прежней. И при повторном прохождении подобного цикла в ней всё ещё будут документы не соответствующие условию.
37 Enlighted
 
26.07.23
11:07
Типа так:
Пока СписокВозвратов.ПолучитьДокумент() = 1 Цикл
  Если СписокВозвратов.Сумма > 1000 Тогда
        СписокВозвратов.УбратьДокументИзВыботки();
  КонецЕсли

// тут свои условия пишешь и не нужное отсекаешь


КонецЦикла;
38 Builder
 
26.07.23
11:08
(36) Эээээ, ну... даже не знаю что сказать.
А что дальше с выборкой делается то?
39 Irbis
 
26.07.23
11:14
(37) тогда уж наеборот, один раз перебрать выборку и покласть её хоть в СЗ, хоть ещё куда. Но почему всё нельзя сделать за один проход выборки пока неясно (тема сисег не раскрыта).
40 Enlighted
 
26.07.23
11:15
(38) А далее я по этим документам нахожу связанные с ними документы (выдача займа и выплаты процентов)
То-есть по сути мне надо выбрать все залоги созданные за определённый период и полностью погашенные за этот же период.
41 Enlighted
 
26.07.23
11:16
Получается я хочу убрать из выборки все частичные погашения, оставить только полные.
42 Enlighted
 
26.07.23
11:43
(31) Сам запрос вернёт данные насколько я понял, а мне нужны объекты, чтобы потом продолжить с ними работать.
43 Builder
 
26.07.23
11:52
(42) У вас каша из понятий, так будет сложно работать....
Запрос вернет то что ему скажут.
Делайте выборку, проверяйте отдельно каждый документ в отдельной функции и потом уже решайте что с ним делать.

Пока СписокВозвратов.ПолучитьДокумент() = 1 Цикл
  Если ПроверитьМойДокументНаПогашения(СписокВозвратов) = 0 Тогда
        Продолжить;
  КонецЕсли


// тут будут проверенные документы, их можно вывести куда угодно, хоть в отчет, хоть в ТЗ

КонецЦикла;
44 Злопчинский
 
26.07.23
11:57
(40) можно сделать наоборот, выбирай займы и погашения.
а через них будешь иметь доступ к родительским документам.
и полюбасику - если ты работаешь с документами - тебе как минимум придется пройти "по выборке" чтобы насчитать полное погашение или частичное.
а дальше уже оставлять - помещая в некий кэш - те которые нужны.
45 Злопчинский
 
26.07.23
11:59
если конфигу писал такой же эникейщик-погромист1С - тогда типа только так.
если написано нормально - тогда у тебя СРАЗУ есть "накопитель" в котором содержится непогашенный остаток ссуды. его и считать не надо, только извлечь (из регистра если это на ОУ написано или по соответствующему счету если на БУ))
46 GrayS19
 
26.07.23
12:13
(40) Если эти документы двигают итоги по какому-то бухгалтерскому счёту(регистру) - может просто просто по этому счёту(регистру) получать аналитику ?
47 Enlighted
 
26.07.23
12:15
(45) её писали 5 разных человек с разным уровнем знания. И их не найти теперь.
(43) Можно пояснение?

Пока СписокВозвратов.ПолучитьДокумент() = 1 Цикл                   // Тут мы получаем очередной документ из выборки
  Если ПроверитьМойДокументНаПогашения(СписокВозвратов) = 0 Тогда  // Тут мы проверяем документ на соответствие неким параметрам
        Продолжить;                                                // Тут если он не соответствует параметрам, то идём получать следующий
  КонецЕсли
                                                                   // Тут если документ нам подходит переносится в другую выборку
ОтфильтрованныйСписокВозвратов.ДокументНомер.Счётчик = СписокВозвратов.ТекущийДокумент         // Так чтоли?

КонецЦикла;
48 Злопчинский
 
26.07.23
12:16
(46) ага, в (45) про это же. а это смотря как сконструировано. обычно на счетах/регистрах лежит остаток, т.е. непогашенное. а ему надо наоборот. получением аналитики тут не обойтись простым сальдо конечным...
.
но имхо наши разлагольствования неконструктивны, автор не в теме
49 Злопчинский
 
26.07.23
12:18
(47) фу трэш какой.
стукайся в скайп Zlopun или скинь в мыло [email protected] контакт на телегу/вацап
50 Enlighted
 
26.07.23
16:26
(49) парой часов позже можно будет?
51 Злопчинский
 
26.07.23
22:35
(50) да хоть сейчас, я обычно до 23-24 по МСК доступен
Закон Брукера: Даже маленькая практика стоит большой теории.