В док-те найти строку по значению

  1. 10 г. назад

    Как можно найти в таб. части док-та строку с заданным значением?
    Например: в док-те Реализация найти строку, в которой лежит партия с кодом 150.
    ТиС 932.

    Ответы: (1)
  2. ‹ Ранее
  3. 10 г. назад
    23.09.2014 14:52:38 отредактировано КитайскийМуй
        |ТекущийДокумент = Документ.РасходнаяНакладная.ТекущийДокумент;
    	|Код = Документ.РасходнаяНакладная.Партия.Код;
    	|ТекущийЭлемент = Документ.РасходнаяНакладная.Партия.ТекущийЭлемент;
    	|НомерСтроки = Документ.РасходнаяНакладная.НомерСтроки;
    	|Группировка Документ;
    	|Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.Наименование;
    	|Группировка Код;
    	|Группировка НомерСтроки;
    	|Условие(Код = 150);
    Ответы: (7) (105)
  4. (6) Не хочу запросом.
    (5) Партия есть. Попробую...

  5. Фиг мне...
    ТекДок.НайтиЗначение(ТаблицаУдаленных.Партия); - Поле агрегатного объекта не обнаружено (НайтиЗначение)
    ТаблицаУдаленных.Партия - справочник

    Ответы: (9)
  6. (8) тебе СП продать? есть занедорого

    ВыгрузитьТабличнуюЧасть() а потом - делай с этой ТЗ что хошь

    Ответы: (10) (11) (15) (22)
  7. (9) Спасибо. У меня есть.
    Я и спрашиваю - Найти() по таб. части - нет такого?

    Ответы: (11)
  8. (10) не в доке енто значение искай, а егойной табличной части.
    (9) можно и через менеджера временных таблиц, тогда запросу и записанность не важна

    Ответы: (13)
  9. ВыбратьСтроки()
    ПолучитьСтроку()
    ПолучитьСтрокуПоНомеру(<?>)

    Ответы: (14)
  10. (11) Если Выгрузить... - мне нужно найденное поменять. Или оно поменяет? Сразу в таб. части? Или нужно будет потом обратно пихать?

  11. (12) Так я сделала. Думала можно - кошернее...

    Ответы: (15) (17)
  12. пиля, это ж опять семерка, вот я придууурок.
    (14) извините, заголовки не четаю. С (9) согласен. В табличке можно найти, можно и изменить, после ЗагрузитьТабличнуюЧасть()

    Ответы: (16)
  13. (15) Самокритика, однако [smile=:D]

  14. 23.09.2014 15:21:32 отредактировано КитайскийМуй

    (14) Запросом или через ТЗ - быстрее.

    Ответы: (18)
  15. (17) не факт

  16. Какие ваши доказательства? Я именно про ТЗ :)

  17. 	ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");
    	НужноЗаписать = 0;
    	Номер = 11981;
    	СпрПартии = СоздатьОбъект("Справочник.Партии");
    		
    	ТаблицаУдаленных.ВыбратьСтроки();
    
    	Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
    		ТекДок = ТаблицаУдаленных.Ссылка.ТекущийДокумент();
    		ТекДок.ВыбратьСтроки();
    
    		Пока ТекДок.ПолучитьСтроку() = 1 Цикл
    			Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда
    				СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8));
    				ТекДок.Партия = СпрПартии.ТекущийЭлемент();
    				НужноЗаписать = 1;
    				Номер = Номер + 1;
    			КонецЕсли;
    		КонецЦикла;
    
    		Если НужноЗаписать = 1 Тогда
    			ТекДок.Записать();
    		КонецЕсли;
    	КонецЦикла;
    

    Выдает - Не выбран документ!
    Где я его потеряла...

    Ответы: (21) (23)
  18. Масянька Где я его потеряла..

    вот здесь:
    ТекДок = ТаблицаУдаленных.Ссылка.ТекущийДокумент();

    Ответы: (31)
  19. (9) Ты его и не нахдила. ТаблицаУдаленных.Ссылка.ТекущийДокумент() - здесь непонял

  20. 23.09.2014 15:51:01 отредактировано КитайскийМуй

    Масянька ТекДок = ТаблицаУдаленных.Ссылка.(!!!)ТекущийДокумент();

    Это из восьмёрки :)

    Или просто: ТекДок = ТаблицаУдаленных.Ссылка; если Ссылка - это колонка ТЗ.

    Ответы: (24) (25) (30) (104)
  21. (23) А может у нее столбец такой есть

    Ответы: (26)
  22. (23) Блин... Сегодня я - натуральная блондинка... [smile=o_O]

    Ответы: (104)
  23. syktyk А может

    не может, а есть. иначе ошибка была бы другая

    Ответы: (28) (32)
  24. Стоп!
    Да - это столбец - ТаблицаУдаленных.НоваяКолонка("Ссылка",,,"Ссылка");

  25. (26) И что делать-то? [smile=;_;]

    Ответы: (30)
  26. Убери ТекущийДокумент()

    Ответы: (31) (39)
  27. (28) см. (23)

    Ответы: (33)
  28. (29) ответ неверный.

    ответ в (21)

    вот здесь:
    ТекДок =

    Ответы: (34) (35)
  29. (26) Я то знаю :) Это такой вид вопроса - подъэпический :)

    Ответы: (34) (35)
  30. (30) и твой совет ей тоже не поможет

    я не понял, шо, все клюшки забыли?

    Ответы: (36)
  31. (32) Я тебе припомню...
    (31) Не понял...

    Ответы: (43)
  32. (31) Чивойта неверный? В Ссылка у нее ссылка на документ. ТекДок будет ссылкой на документ

    (32) Так я не тебе, а Мую :)

  33. 23.09.2014 15:59:00 отредактировано КитайскийМуй

    (33) Забыли. :)

    НайтиДокумент() ?

    Ответы: (42) (47)
  34. В Ссылке сидит док-т. Именно док-т.
    Как его взять-то?

    Ответы: (38) (39) (51)
  35. (37) см (29)

    Ответы: (40) (41)
  36. док - Реализация (служебный) 0188 - 09/04/13, тип - Документ

    (39) Убрала. А он - все равно в душу плюет... [smile=;_;]

    	ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");
    	НужноЗаписать = 0;
    	Номер = 11981;
    	СпрПартии = СоздатьОбъект("Справочник.Партии");
    		
    	ТаблицаУдаленных.ВыбратьСтроки();
    
    	Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
    		ТекДок = ТаблицаУдаленных.Ссылка;//.ТекущийДокумент();
    		ТекДок.ВыбратьСтроки();
    
    		Пока ТекДок.ПолучитьСтроку() = 1 Цикл
    			Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда
    				СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8));
    				ТекДок.Партия = СпрПартии.ТекущийЭлемент();
    				НужноЗаписать = 1;
    				Номер = Номер + 1;
    			КонецЕсли;
    		КонецЦикла;
    
    		Если НужноЗаписать = 1 Тогда
    			ТекДок.Записать();
    		КонецЕсли;
    	КонецЦикла;
    
    Ответы: (42)
  37. (39) ТекущийДокумент() от ссылки будет так же ссылка, этот момент сработает (хотя, конечно, это лишнее).
    но проблема не в этом.

    думай, Чапай, думай!

    Ответы: (46)
  38. (40) см. (36)

  39. Масянька Не понял...

    давай начнём с азов:

    что за оператор такой "=", что он делает?

    Ответы: (56)
  40. Ну еще там надо Выбрать документы как-то

    Ответы: (45)
  41. (44) о, вижу проблески памяти. только не выбрать, а найти

  42. (41) Я пошла топиться... А море уже холодное...
    Никто меня не любит, никто не понимает (С)

    Ответы: (50)
  43. КитайскийМуй НайтиДокумент() ?

    бинго! и приз уходит пенсионеру из Уфы Китайскому Мую

    Ответы: (48) (49)
  44. (47) так не честно...Муй отредактировал пост после моего...и мне как честному пришлось свой просто удалить...)))

    Ответы: (53) (54)
  45. ТекДок = НайтиДокумент(ТаблицаУдаленных.Ссылка)

    (47) А вот не надо! Я первый намек дал :)

    Ответы: (58)
  46. (46) тебе нужен ДокументОбъект, а ты тягаешь ДокументСсылка, так мало того - перезаписываешь ДокументОбъект ДокументСсылкой.

    перезаписываешь вот здесь: ТекДок = ТаблицаУдаленных.Ссылка;

  47. (37) вместо
    ТекДок = ТаблицаУдаленных.Ссылка.ТекущийДокумент();

    лепишь чтото типа
    НужныйДок = ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
    НужныйДок .ВыбратьСтроки();

    Для Ном=1 По НужныйДок.КоличествоСтрок() Цикл
    НужныйДок.ПолучитьСтрокуПоНомеру(Ном);
    Если НужныйДок .Партия = ТаблицаУдаленных.Партия Тогда
    Если СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8)) <>0 Тогда
    НужныйДок .Партия = СпрПартии.ТекущийЭлемент();
    НужноЗаписать = 1;
    Номер = Номер + 1;
    Иначе
    Сообщить("В партиях лажа!");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    с учетом того, что НужныйДок, если проведен - нужно перед записью СделатьНеПроведенным(), и после зпапесе Провести()

    Ответы: (59) (74) (78) (96)
  48. Да Муй тут вообще со своей 8-кой всех запутал. Надо его оштрафовать еще!

  49. (48) Извини, друг, у меня нет что тебе подарить... возьми мой сахар пост № 36... :)

  50. (48) ну, да, малясь подмухлевал он. но - формально не придерёшься :)

  51. Никто меня любит, никто не понимает (С) (уже со злостью)
    ТекДок = НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент();
    Функция не обнаружена (НайтиДокумент)

    Ответы: (56) (57) (59) (60)
  52. (55) та-а-а-а-ак... см. (43)

  53. 23.09.2014 16:08:30 отредактировано V777

    (55) Док = СоздатьОбъект()
    ТекДок = Док.НайтиДокумент()

  54. syktyk ТекДок = НайтиДокумент(ТаблицаУдаленных.Ссылка)

    и ты, Брут... ©

  55. 23.09.2014 16:09:07 отредактировано КитайскийМуй

    (55) Идун правильно написал - в (51)
    НайтиДокумент() можно использовать только для объектов, созданных функцией СоздатьОбъект.

    Ответы: (62)
  56. (55) ааа
    да
    ТекДок = СоздатьОбъект("Документ");

  57. блин, сегодня что - вторничный тупнячок, что-ли? я аж прямо расстроился

    Ответы: (63) (64) (66)
  58. (59) я бы не сказал

  59. (61) у мну каша с скд в голове...и 7.7 я плохо помню что-то...)

  60. или там не документ, но это уже на создание ТаблицыУдаленных надо смотреть
    (61) хренассе уже вторник? а понедельник когда был???

  61. Я (походу) совсем сошла с ума...

    	Документы = СоздатьОбъект("Документ.СлужебныйРеализация");
    	НужноЗаписать = 0;
    	Номер = 11981;
    	СпрПартии = СоздатьОбъект("Справочник.Партии");
    		
    	ТаблицаУдаленных.ВыбратьСтроки();
    
    	Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
    		ТекДок = Документы.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент();
    		ТекДок.ВыбратьСтроки();
    
    		Пока ТекДок.ПолучитьСтроку() = 1 Цикл
    			Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда
    				СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8));
    				ТекДок.Партия = СпрПартии.ТекущийЭлемент();
    				НужноЗаписать = 1;
    				Номер = Номер + 1;
    			КонецЕсли;
    		КонецЦикла;
    
    		Если НужноЗаписать = 1 Тогда
    			ТекДок.Записать();
    		КонецЕсли;
    	КонецЦикла;
    	
    

    Значение не представляет агрегатный объект (ВыбратьСтроки)

    Ответы: (67) (68)
  62. (61) А сегодня, что, вторник??? В Петропавловске-Камчатском - уже за полночь... )))

  63. (65) Сообщить(ТипЗначенияСтр(ТаблицаУдаленных.Ссылка));

  64. 23.09.2014 16:12:47 отредактировано andrewks

    (65) ладно, не буду мучить тебя

        Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
            ТекДок = СоздатьОбъект("Документ");
            Если ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка)<>1 Тогда Продолжить; КонецЕсли;
            ТекДок.ВыбратьСтроки();
    
    
    Ответы: (74) (80)
  65. 	Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
    		ТекДок = Документы.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент();
    Сообщить("док - " + ТекДок + ", тип - " + ТипЗначенияСтр(ТекДок));
    Сообщить("табл - " + ТаблицаУдаленных.Ссылка + ", тип - " + ТипЗначенияСтр(ТаблицаУдаленных.Ссылка));
    		ТекДок.ВыбратьСтроки();
    

    док - 1, тип - Число
    табл - Реализация (служебный) 0188 - 09/04/13, тип - Документ
    ТекДок.ВыбратьСтроки();
    {D:\1CV7\ОБРАБОТКИ\ДЛЯ СПРАВОЧНИКОВ\ПОИСКССЫЛОКПАРТИИ.ERT(72)}: Значение не представляет агрегатный объект (ВыбратьСтроки)

  66. может там вообще представление, а не ссылка

    Ответы: (72) (73)
  67. а ещё лучше ТекДок = СоздатьОбъект("Документ"); из цикла вынести вверх, чтобы не создавать объект каждый раз

  68. (70) табл - Реализация (служебный) 0188 - 09/04/13, тип - Документ

  69. (70) у представления .ТекущийДокумент() выдало бы ошибку

  70. (68) ой ой, в цыкле объект создовать, халтурщек. А масяньке надоть очки покупать (а у меня есть) и исчо раз (51) рассмотреть, внимательна.

    Ответы: (75) (76) (78)
  71. (74) Не-а.

    	ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");
    	НужноЗаписать = 0;
    	Номер = 11981;
    	СпрПартии = СоздатьОбъект("Справочник.Партии");
    		
    	ТаблицаУдаленных.ВыбратьСтроки();
    
    	Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
    		ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент();
    		ТекДок.ВыбратьСтроки();
    
    		Пока ТекДок.ПолучитьСтроку() = 1 Цикл
    			Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда
    				СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8));
    				ТекДок.Партия = СпрПартии.ТекущийЭлемент();
    				НужноЗаписать = 1;
    				Номер = Номер + 1;
    			КонецЕсли;
    		КонецЦикла;
    
    		Если НужноЗаписать = 1 Тогда
    			ТекДок.Записать();
    		КонецЕсли;
    	КонецЦикла;
    

    Масяньке сегодня нельзя за руль... Не мой день...

    Ответы: (77) (79) (80) (87) (89)
  72. Идун ой ой, в цыкле объект создовать, халтурщек.

    это я шоб её с толку не сбивать, а то с её объявлением
    ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");

    опять ошибка выйдет

  73. (75) слепая, ты ТекДок из документов в объект перепозиционируешь, на первой же интерации искать там нечего.

  74. Идун А масяньке надоть очки покупать (а у меня есть) и исчо раз (51) рассмотреть,

    да за

    НужныйДок = ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
    НужныйДок .ВыбратьСтроки();
    

    нужно прямо в очки заехать

    Ответы: (82)
  75. 23.09.2014 16:23:04 отредактировано КитайскийМуй

    (75)

    ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");
        НужноЗаписать = 0;
        Номер = 11981;
        СпрПартии = СоздатьОбъект("Справочник.Партии");
            
        ТаблицаУдаленных.ВыбратьСтроки();
    
        Пока ТаблицаУдаленных.ПолучитьСтроку() = 1 Цикл
            ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);//.ТекущийДокумент();
            Пока ТекДок.ПолучитьСтроку() = 1 Цикл
                Если ТекДок.Партия = ТаблицаУдаленных.Партия Тогда
                    СпрПартии.НайтиПоКоду(глДополнитьСтрокуЛ(Номер, "0", 8));
                    ТекДок.Партия = СпрПартии.ТекущийЭлемент();
                    НужноЗаписать = 1;
                    Номер = Номер + 1;
                КонецЕсли;
            КонецЦикла;
    
            Если НужноЗаписать = 1 Тогда
                ТекДок.Записать();
            КонецЕсли;
        КонецЦикла;
    
    Ответы: (83)
  76. Масянька Не мой день...

    не грусти, см. (68)

  77. Док = СоздатьОбъект("Документ");

    Пока Док.ПолучитьДокумент()=1 Цикл
    ТекДок = Док.ТекущийДокумент();

    Ответы: (85)
  78. (78) скуяле? ты ссылку перезаписывать собрался? ню-ню

    Ответы: (84) (86)
  79. (79) да что же такое-то... снеговик съел ваш мозг?

    Ответы: (88)
  80. (82) а у числа давно появился метод .ВыбратьСтроки() ?

    Ответы: (97)
  81. (81) тоже неверно. ссылку она не запишет потом

  82. Идун ты ссылку перезаписывать собрался?

    где я её перезаписываю?

  83. Не ссорьтесь.
    Тем более - топиться уже холодно.
    Код из (75) работает.

    Ответы: (89) (96)
  84. 23.09.2014 16:24:15 отредактировано КитайскийМуй

    (83) Поправил.

    Таки да, съел... :)

    Ответы: (90)
  85. Масянька Код из (75) работает.

    не верю

    Ответы: (91)
  86. (88) не до конца. один момент забыл
    ТекДок = СоздатьОбъект("Документ.СлужебныйРеализация");

    Ответы: (94)
  87. (89) Работает, работает

  88. НайтиДокумент(<?>)
    Синтаксис:
    НайтиДокумент(<Документ>)
    Назначение:
    Найти документ по значению.
    Возвращает: 1 - если действие выполнено (документ найден);
    0 - если действие не выполнено.
    Параметры:
    <Документ> - выражение со значением типа 'Документ'.
    Замечание:
    Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

  89. Всем - спасибо.
    Выбирайте - кому что:
    Поцелуй3.jpg
    17.jpg
    images.jpg
    index.jpg
    index1.jpg

    Ответы: (95)
  90. (90) А 1-я строчка?

    Ответы: (98)
  91. (93) Выбираю - вторую... :)

  92. (87) а чем он от (51) отличается?
    обиделся.

    Ответы: (97) (99)
  93. Идун обиделся.

    ты сначала на (84) ответь )

  94. (94) да, что-то я в этом трэшаке уже заблудился. молодец! :)

  95. (96)
    НужныйДок = ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
    Возвращает: 1 - если действие выполнено (документ найден);
    0 - если действие не выполнено.
    НужныйДок будет либо 1, либо 0

    Ответы: (100)
  96. (99) Так?
    ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
    НужныйДок=ТекДок.ТекущийДокумент();

    Соточка!

    Ответы: (101) (103)
  97. (100)
    images.jpg

  98. Себе возьму bu.gif

  99. (100) Это ж будет снова ссылка, а нужно - позиционирование, просто :
    ТекДок.НайтиДокумент(ТаблицаУдаленных.Ссылка);
    Пока ТекДок...

  100. Масянька (23) Блин... Сегодня я - натуральная блондинка... [smile=o_O]

    А до сегодня была крашенной?

  101. КитайскийМуй Условие(Код = 150)

    шедевр

или зарегистрируйтесь чтобы ответить!