|
v7: Ерунда в коде. | ☑ | ||
---|---|---|---|---|
0
__Se24
25.08.11
✎
10:01
|
Господа программеры 1С подскажите , вот натолкнулся в коде на такую фичу (код не мой , писан лет 5 назад )
Если докПодч.ВыбратьПодчиненныеДокументы(ДокументОснование.ДатаДок,ДатаДок,ДокументОснование)=1 Тогда Пока докПодч.ПолучитьДокумент()=1 Цикл Если строка(докПодч)<>строка(ТекущийДокумент()) Тогда в чем великий смысл вот этого : Если строка(докПодч)<>строка(ТекущийДокумент()) Тогда Или это просто автор киворук , и незнает о Если докПодч.ТекущийДокумент()<>ТекущийДокумент() Тогда боюсь ломать ... |
|||
1
ДенисЧ
25.08.11
✎
10:02
|
работает - не трогай.
|
|||
2
ДенисЧ
25.08.11
✎
10:02
|
Кроме того, каждый вызов .ТекущийДокумент() - это обращение к БД, а для строка() это не нужно. Теоретически - чуть быстрей.
|
|||
3
2S
25.08.11
✎
10:03
|
(0) выпендрился
|
|||
4
aka AMIGO
25.08.11
✎
10:03
|
(0) системное представление документа переводится в строковый/текстовый формат..
в принципе - должно и так работать :) |
|||
5
andrewks
25.08.11
✎
10:05
|
имхо, это не гуд. гипотетически возможны ситуации "ложного" равенства
|
|||
6
zak555
25.08.11
✎
10:07
|
где год написан ?
|
|||
7
zak555
25.08.11
✎
10:07
|
*код
|
|||
8
zak555
25.08.11
✎
10:07
|
+ переписать нах
|
|||
9
__Se24
25.08.11
✎
10:08
|
просто возникла необходимость слегка модернизировать данную процедуру , и вот натолкнулся .
вот и хотел уточнить , может просто моих знаний нехватает для понимания данного фрагмента .... |
|||
10
aka AMIGO
25.08.11
✎
10:09
|
(5) а что сравнивается в формате ссылки?
|
|||
11
__Se24
25.08.11
✎
10:10
|
(6) код в модуле проведения одного очень ключевого документа. Посему не хотелось бы случайно его "сломать" ))
|
|||
12
andrewks
25.08.11
✎
10:10
|
(2) с вероятностью 99,9% вызов .ТекущийДокумент() идёт ниже по тексту.
так что один раз загнал в перем ТекДок (до цикла) и ТекДокПодч, и сравнивай. |
|||
13
andrewks
25.08.11
✎
10:11
|
(10) ссылка, как ни странно :)
|
|||
14
zak555
25.08.11
✎
10:11
|
//******************************************************************************
// глНайтиСчетФактуру(Конт,ВидСФ,ВозврПомУд) // // Параметры: // Конт - текущий контекст формы документа // ВидСФ - (Строка) - название вида документа (счета фактуры) // ВозврПомУд - 1 - возвращать и помеченный на удаление СФ, 0 - не возвращать. // Значение по умолчанию 1. // // Возвращаемое значение: // Найденный счет-фактура или "" // // Описание: // Функция ищет счет-фактуру документа среди подчиненных документов // Функция глНайтиСчетФактуру(Конт,ВидСФ,ВозврПомУд=1) Экспорт Перем ДокПодч; СФПомНаУд = ""; // проверяем чтобы был записан всегда! Если (Конт.Выбран() = 1) Тогда ДокПодч = СоздатьОбъект("Документ"); ДокПодч.ВыбратьПодчиненныеДокументы(,,Конт.ТекущийДокумент()); Пока ДокПодч.ПолучитьДокумент()=1 Цикл Если ДокПодч.Вид() = ВидСФ Тогда ТекСФ = ДокПодч.ТекущийДокумент(); Если ТекСФ.ПометкаУдаления() = 1 Тогда Если (ПустоеЗначение(СФПомНаУд) = 1) И (ВозврПомУд = 1) Тогда СФПомНаУд = ТекСФ; КонецЕсли; Иначе Возврат ТекСФ; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; Возврат СФПомНаУд; КонецФункции // глНайтиСчетФактуру() |
|||
15
zak555
25.08.11
✎
10:12
|
(11) какие функции у ключевого документа ?
|
|||
16
aka AMIGO
25.08.11
✎
10:12
|
(13) а я думал, ID-ы :)
вообще-то вопрос надо задавать разработчикам языка и платформы.. |
|||
17
__Se24
25.08.11
✎
10:13
|
Не , не о какой "оптимизации быстродействия" там речи не идет , там документ , просто проверяет есть ли докуметы такого типа ранее , и если нету . делает сторно по регистру .
(15) Приходная накладная ))) |
|||
18
zak555
25.08.11
✎
10:14
|
(17) а это что за документ 87
|
|||
19
__Se24
25.08.11
✎
10:25
|
(18)Приходная накладная )
|
|||
20
zak555
25.08.11
✎
10:26
|
(19) это основание
а сам док в (0) |
|||
21
__Se24
25.08.11
✎
10:31
|
А тоже приходная
|
|||
22
__Se24
25.08.11
✎
10:32
|
приходная на основании приходной
|
|||
23
zak555
25.08.11
✎
13:00
|
(22) смысл какой тогда ?
|
|||
24
KishMish
25.08.11
✎
13:30
|
(0) Может автор так хитро использует.
пример есть два ВИДА документа с одинаковым представлением. тогда есть разница между Если строка(докПодч)<>строка(ТекущийДокумент()) Тогда и Если докПодч.ТекущийДокумент()<>ТекущийДокумент() Тогда |
|||
25
1Сергей
25.08.11
✎
13:32
|
(24)+1
Часто у документов для доп.табличной части представление такое же как у головного документа |
|||
26
__Se24
25.08.11
✎
14:53
|
(24) и (25) совершенно правы !
введен подвид документа , но по сути это один документ ! |
|||
27
mad hatter
25.08.11
✎
15:08
|
(0) теоретицски возможно ложное равенство
|
|||
28
Aprobator
25.08.11
✎
15:12
|
есть подозрение, что получение, что Представления документов быстрее получить и сравнить, чем сравнивать непосредственно документы. Но надо смотреть.
(26) В конфе подвид все равно отдельным видом стоит. Но надо посмотреть, как получается его представление (оно же вроде с синонима берется). |
|||
29
__Se24
25.08.11
✎
15:34
|
строковое представление , это чтото типа
"ПриходнаяНакладная Т-02301 от 23.08.2011" дата добавляется , если есть периодничность в номерах год . собственно все .... короч , я решил что цепуха .и все переписал ))) работает как-будто и ничего не меняли )) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |