Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Присвоение переменных происходит по ссылке? (http://forums.kuban.ru/f1040/prisvoenie_peremennyh_proishodit_po_ssylke-3400471.html)

stpd 07.12.2012 08:09

Присвоение переменных происходит по ссылке?
 
Всем привет!

Подскажите, плиз, где я здесь накосячил:

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Потребители, ВыбСубконто1, 2);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "ОСН",,, 1, "Проводка", "С");

ТекДокумент = СоздатьОбъект("Документ");
ТекЗадолженность = 0;
ТекСумма = 0;

Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл // Вот в этот момент сам собой меняется ТекДокумент
Если Ит.Операция.Документ<>ТекДокумент Тогда
ТекДата = Ит.НачДата;
ТекДокумент = Ит.Операция.Документ;
ТекЗадолженность = Ит.СНД();
КонецЕсли;
ТекСумма = ТекСумма + Ит.ДО();
КонецЦикла;

Проблема в следующем: переменная ТекДокумент ВСЕГДА равна Ит.Операция.Документ. Лично я в шоке...

Helen1986 07.12.2012 08:14

логика бландинки

stpd 07.12.2012 08:18

Спасибо. А по существу?

asupsam 07.12.2012 08:21

Да, тоже сталкивался когда-то с этим и долго втыкал в чем прикол

stpd 07.12.2012 08:57

А в чем - уже не помнишь?

asupsam 07.12.2012 09:37

А я решил по другому, в обход. Искал по номеру и дате через СоздатьОбъект() и использовал ту ссылку

stpd 07.12.2012 09:48

Я тоже пошел в обход. Только через строковое представление.
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
ТекДок = Ит.Операция.Документ;
ТекПредставлениеОперации = ТекДок.Вид()+" "+ТекДок.НомерДок+" ("+ТекДок.ДатаДок+")";
Если ТекПредставлениеОперации<>ТекДокумент Тогда
ТекДокумент = ТекПредставлениеОперации;

Вобщем-то - проблема обойдена. Но хотелось бы все-таки понять причины проблемы...

Helen1986 07.12.2012 09:54

наверное, стоит взять текущий доокумент и дать афтару по башке
Ит.Операция.Документ.ТекущийДокумент()


Ит.Операция.Документ - это ваще то ссылка на курсор

stpd 07.12.2012 10:21

нда, логика брюнеток - в операции может быть множество документов...

Helen1986 07.12.2012 10:24

опять логика тупого одноэсника со стандартной дуростью

можно перебирать документы (операции), а можно проводки по птицам - механизм универсальный

stpd 07.12.2012 10:41

Я спорить не буду - спасибо за науку. :)
Просто хочется заметить: если дурость стандартная - может она не дурость? а интуитивное восприятие?

asupsam 07.12.2012 10:41

(8) каюсь, может быть туплю, но что значит "в операции может быть множество документов"

EarlyBird 07.12.2012 10:48

[quote=stpd;28048554] если дурость стандартная - может она не дурость? а интуитивное восприятие? [/quote]
это таки дурость
из-за отсутствия навыков программирования на традиционных объектно-ориентированных языках

stpd 07.12.2012 11:02

[quote=asupsam;28048558] (8) ...что значит "в операции может быть множество документов" [/quote]
Ит.Операция.Документ.ТекущийДокумент() - получается, что в операции хранится не какой-то конкретный документ. И обращаясь к данному объекту я еще должен выбирать некий текущий - из множества.

Helen1986 07.12.2012 11:10

маразм крепчает

stpd 07.12.2012 11:24

(14) @->- Не дуйся, я хороший... :)

Helen1986 07.12.2012 11:37

(15)
изучай - умным станешь

[img]http://cs305713.vkontakte.ru/u15203966/138074073/x_b5d78b98.jpg[/img]

VZ 07.12.2012 12:25

А еще следует прочитать про метод (для объекта БухгалтерскиеИтоги) [b]Опции(параметр)[/b].
На всякий случай ;)


Текущее время: 19:54. Часовой пояс GMT +3.