Как можно найти в таб. части док-та строку с заданным значением?
Например: в док-те Реализация найти строку, в которой лежит партия с кодом 150.
ТиС 932.
Как можно найти в таб. части док-та строку с заданным значением?
Например: в док-те Реализация найти строку, в которой лежит партия с кодом 150.
ТиС 932.
|ТекущийДокумент = Документ.РасходнаяНакладная.ТекущийДокумент; |Код = Документ.РасходнаяНакладная.Партия.Код; |ТекущийЭлемент = Документ.РасходнаяНакладная.Партия.ТекущийЭлемент; |НомерСтроки = Документ.РасходнаяНакладная.НомерСтроки; |Группировка Документ; |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.Наименование; |Группировка Код; |Группировка НомерСтроки; |Условие(Код = 150);
Фиг мне...
ТекДок.НайтиЗначение(ТаблицаУдаленных.Партия); - Поле агрегатного объекта не обнаружено (НайтиЗначение)
ТаблицаУдаленных.Партия - справочник
ВыбратьСтроки()
ПолучитьСтроку()
ПолучитьСтрокуПоНомеру(<?>)
(11) Если Выгрузить... - мне нужно найденное поменять. Или оно поменяет? Сразу в таб. части? Или нужно будет потом обратно пихать?
(15) Самокритика, однако [smile=:D]
(17) не факт
Какие ваши доказательства? Я именно про ТЗ :)
ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация"); НужноЗаписать = 0; Номер = 11981; СпрПартии = СоздатьОбъект("Справочник.Партии"); ТаблицаУдаленных.ВыбратьСтроки(); Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок = ТаблицаУдаленных.Ссылка.ТекущийДокумент(); ТекДок.ВыбратьСтроки(); Пока ТекДок.ПолучитьСтроку() = 1 Цикл Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)); ТекДок.Партия = СпрПартии.ТекущийЭлемент(); НужноЗаписать = 1; Номер = Номер + 1; КонецЕсли; КонецЦикла; Если НужноЗаписать = 1 Тогда ТекДок.Записать(); КонецЕсли; КонецЦикла;
Выдает - Не выбран документ!
Где я его потеряла...
(9) Ты его и не нахдила. ТаблицаУдаленных.Ссылка.ТекущийДокумент() - здесь непонял
Масянька ТекДок = ТаблицаУдаленных.Ссылка.(!!!)ТекущийДокумент();
Это из восьмёрки :)
Или просто: ТекДок = ТаблицаУдаленных.Ссылка; если Ссылка - это колонка ТЗ.
Стоп!
Да - это столбец - ТаблицаУдаленных.НоваяКолонка("Ссылка",,,"Ссылка");
(33) Забыли. :)
НайтиДокумент() ?
док - Реализация (служебный) 0188 - 09/04/13, тип - Документ
(39) Убрала. А он - все равно в душу плюет... [smile=;_;]
ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация"); НужноЗаписать = 0; Номер = 11981; СпрПартии = СоздатьОбъект("Справочник.Партии"); ТаблицаУдаленных.ВыбратьСтроки(); Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок = ТаблицаУдаленных.Ссылка;//.ТекущийДокумент(); ТекДок.ВыбратьСтроки(); Пока ТекДок.ПолучитьСтроку() = 1 Цикл Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)); ТекДок.Партия = СпрПартии.ТекущийЭлемент(); НужноЗаписать = 1; Номер = Номер + 1; КонецЕсли; КонецЦикла; Если НужноЗаписать = 1 Тогда ТекДок.Записать(); КонецЕсли; КонецЦикла;
(44) о, вижу проблески памяти. только не выбрать, а найти
КитайскийМуй НайтиДокумент() ?
бинго! и приз уходит пенсионеру из Уфы Китайскому Мую
(46) тебе нужен ДокументОбъект, а ты тягаешь ДокументСсылка, так мало того - перезаписываешь ДокументОбъект ДокументСсылкой.
перезаписываешь вот здесь: ТекДок = ТаблицаУдаленных.Ссылка;
(37) вместо
ТекДок = ТаблицаУдаленных.Ссылка.ТекущийДокумент();
лепишь чтото типа
НужныйДок = ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
НужныйДок .ВыбратьСтроки();
Для Ном=1 По НужныйДок.КоличествоСтрок() Цикл
НужныйДок.ПолучитьСтрокуПоНомеру(Ном);
Если НужныйДок .Партия = ТаблицаУдаленных.Партия Тогда
Если СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)) <>0 Тогда
НужныйДок .Партия = СпрПартии.ТекущийЭлемент();
НужноЗаписать = 1;
Номер = Номер + 1;
Иначе
Сообщить("В партиях лажа!");
КонецЕсли;
КонецЕсли;
КонецЦикла;
с учетом того, что НужныйДок, если проведен - нужно перед записью СделатьНеПроведенным(), и после зпапесе Провести()
Да Муй тут вообще со своей 8-кой всех запутал. Надо его оштрафовать еще!
(48) Извини, друг, у меня нет что тебе подарить... возьми мой сахар пост № 36... :)
(48) ну, да, малясь подмухлевал он. но - формально не придерёшься :)
(55) Док = СоздатьОбъект()
ТекДок = Док.НайтиДокумент()
syktyk ТекДок = НайтиДокумент(ТаблицаУдаленных.Ссылка)
и ты, Брут... ©
(55) ааа
да
ТекДок = СоздатьОбъект("Документ");
(59) я бы не сказал
(61) у мну каша с скд в голове...и 7.7 я плохо помню что-то...)
или там не документ, но это уже на создание ТаблицыУдаленных надо смотреть
(61) хренассе уже вторник? а понедельник когда был???
Я (походу) совсем сошла с ума...
Документы = СоздатьОбъект("Документ.СлужебныйРеализация"); НужноЗаписать = 0; Номер = 11981; СпрПартии = СоздатьОбъект("Справочник.Партии"); ТаблицаУдаленных.ВыбратьСтроки(); Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок = Документы.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент(); ТекДок.ВыбратьСтроки(); Пока ТекДок.ПолучитьСтроку() = 1 Цикл Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)); ТекДок.Партия = СпрПартии.ТекущийЭлемент(); НужноЗаписать = 1; Номер = Номер + 1; КонецЕсли; КонецЦикла; Если НужноЗаписать = 1 Тогда ТекДок.Записать(); КонецЕсли; КонецЦикла;
Значение не представляет агрегатный объект (ВыбратьСтроки)
(61) А сегодня, что, вторник??? В Петропавловске-Камчатском - уже за полночь... )))
(65) Сообщить(ТипЗначенияСтр(ТаблицаУдаленных.Ссылка));
(65) ладно, не буду мучить тебя
Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок = СоздатьОбъект("Документ"); Если ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка)<>1 Тогда Продолжить; КонецЕсли; ТекДок.ВыбратьСтроки();
Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок = Документы.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент(); Сообщить("док - " + ТекДок + ", тип - " + ТипЗначенияСтр(ТекДок)); Сообщить("табл - " + ТаблицаУдаленных.Ссылка + ", тип - " + ТипЗначенияСтр(ТаблицаУдаленных.Ссылка)); ТекДок.ВыбратьСтроки();
док - 1, тип - Число
табл - Реализация (служебный) 0188 - 09/04/13, тип - Документ
ТекДок.ВыбратьСтроки();
{D:\1CV7\ОБРАБОТКИ\ДЛЯ СПРАВОЧНИКОВ\ПОИСКССЫЛОКПАРТИИ.ERT(72)}: Значение не представляет агрегатный объект (ВыбратьСтроки)
а ещё лучше ТекДок = СоздатьОбъект("Документ"); из цикла вынести вверх, чтобы не создавать объект каждый раз
(70) табл - Реализация (служебный) 0188 - 09/04/13, тип - Документ
(70) у представления .ТекущийДокумент() выдало бы ошибку
(74) Не-а.
ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация"); НужноЗаписать = 0; Номер = 11981; СпрПартии = СоздатьОбъект("Справочник.Партии"); ТаблицаУдаленных.ВыбратьСтроки(); Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент(); ТекДок.ВыбратьСтроки(); Пока ТекДок.ПолучитьСтроку() = 1 Цикл Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)); ТекДок.Партия = СпрПартии.ТекущийЭлемент(); НужноЗаписать = 1; Номер = Номер + 1; КонецЕсли; КонецЦикла; Если НужноЗаписать = 1 Тогда ТекДок.Записать(); КонецЕсли; КонецЦикла;
Масяньке сегодня нельзя за руль... Не мой день...
Идун ой ой, в цыкле объект создовать, халтурщек.
это я шоб её с толку не сбивать, а то с её объявлением
ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");
опять ошибка выйдет
(75) слепая, ты ТекДок из документов в объект перепозиционируешь, на первой же интерации искать там нечего.
ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация"); НужноЗаписать = 0; Номер = 11981; СпрПартии = СоздатьОбъект("Справочник.Партии"); ТаблицаУдаленных.ВыбратьСтроки(); Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент(); Пока ТекДок.ПолучитьСтроку() = 1 Цикл Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)); ТекДок.Партия = СпрПартии.ТекущийЭлемент(); НужноЗаписать = 1; Номер = Номер + 1; КонецЕсли; КонецЦикла; Если НужноЗаписать = 1 Тогда ТекДок.Записать(); КонецЕсли; КонецЦикла;
Док = СоздатьОбъект("Документ");
Пока Док.ПолучитьДокумент()=1 Цикл
ТекДок = Док.ТекущийДокумент();
(81) тоже неверно. ссылку она не запишет потом
Идун ты ссылку перезаписывать собрался?
где я её перезаписываю?
(89) Работает, работает
НайтиДокумент(<?>)
Синтаксис:
НайтиДокумент(<Документ>)
Назначение:
Найти документ по значению.
Возвращает: 1 - если действие выполнено (документ найден);
0 - если действие не выполнено.
Параметры:
<Документ> - выражение со значением типа 'Документ'.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
(93) Выбираю - вторую... :)
(94) да, что-то я в этом трэшаке уже заблудился. молодец! :)
(100) Это ж будет снова ссылка, а нужно - позиционирование, просто :
ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
Пока ТекДок...
КитайскийМуй Условие(Код = 150)
шедевр