Имя: Пароль:
1C
1C 7.7
v7: Как искать в справочнике?
Ø (aka AMIGO 28.01.2013 19:53)
0 DES
 
28.01.13
15:29
Есть справочник (наименование, цена).
Как добавить элемент которого нет
С отсутствующим наименование и отсутст. ценой.
Есть метода перебора элементов по определенному наименованию?
69 фобка
 
28.01.13
16:08
Если Запрос.Группировка() = 1 Тогда
//Есть;
КонецЕсли;
70 ЧеловекДуши
 
28.01.13
16:09
(66)Аутор походу язвит. Напоминает оутСорсера, который работает по достижению написанного на форуме :)
...
Думается он освоит только пункт №2 :)
71 фобка
 
28.01.13
16:10
(66) хороший вариант с удалением, ток не быстрый наверное+ держит транзакцию на больших справочниках отстатыщ?
72 Irek-kazan
 
28.01.13
16:10
(68) смени сферу деятельности с алкогольной. Например:
таблетка1 1
таблетка2 1,1
таблетка1 2...
73 DES
 
28.01.13
16:11
Спс, надеюсь уже все проявили свое ЧЮ ?
А теперь можете что-то сказать по делу?
74 ЧеловекДуши
 
28.01.13
16:14
(68) (73)  Смотри в (66), пункт № 2.
Он тебе все описал. Убери Удалить и транзакцию. И получишь, то что хочешь.

Судя по коду в (36), у тебя конфа "Бух. Учет".
У материалов есть реквизит "Цена", он не периодический, т.е. всегда один и тот же. (если только у вас чего допилили)

Так что: по (0) НечеНеПонимаю :)
75 фобка
 
28.01.13
16:15
(74) "убери Удалить и транзакцию." не взлетит
76 ЧеловекДуши
 
28.01.13
16:16
(75)Но останется то, что нужно автору :)
77 DES
 
28.01.13
16:16
(76) согласен
78 ЧеловекДуши
 
28.01.13
16:17
+ Остальное он сам допилит, появление нового элемента можно решить с помощью ОпенКонфа.
79 DES
 
28.01.13
16:17
(75) согласен
(76) нет
80 фобка
 
28.01.13
16:18
(78) НайтиПоНаименованию() позиционируется всегда на первом найденом элементе
81 Neg
 
28.01.13
16:19
(59) Где такая дешевая водка?
82 DES
 
28.01.13
16:20
(81) в 1970 году
83 DES
 
28.01.13
16:20
(80) Точно
84 ЧеловекДуши
 
28.01.13
16:20
(79)Что нет?
Я же не в курсе, об состоянии ваших Мета данных :)

По мне так, все получится.
Найдет по наименованию, если не нашёл, то липи есЧё один эльномент :)

Но или используй запрос 1С (черный запрос) и в цикле, т.е. в ТЗ проверяешь, что да как двоится :)
85 DES
 
28.01.13
16:22
(84) Вся проблема в том что бы влепить элемент если ено наименование есть но нет такой цены.
86 DES
 
28.01.13
16:24
Вопрос по Запросу

ТекстЗапроса =
   "//{{ЗАПРОС(ололо)
   |Э = Справочник.Материалы.ТекущийЭлемент;
   |Н = Справочник.Материалы.Наименование;
   |Ц = Справочник.Материалы.Цена;
   |Условие(Н=ВыбрНаименование);
   |Условие(Ц=ВыбрЦена);
   |"//}}ЗАПРОС
   
Если ничего не выбрано, то какое кол-во строк будет в
ТЗ после
Запрос.Выгрузить(ТЗ);
?
87 фобка
 
28.01.13
16:26
(86) ТЗ.КоличествоСтрок() = 0, т.е. создаешь новый элемент
88 фобка
 
28.01.13
16:26
(87) не помню рус. LinesCnt()
89 Масянька
 
28.01.13
16:30
"Если долго мучиться - что-нибудь получиться,
А если получиться - опять будем мучиться" (С)
90 DES
 
28.01.13
16:32
вот такая фигня получилась, можете критиковать


Функция Искать(ВыбрНаименование, ВыбрЦена)
   Перем Запрос, ТекстЗапроса, ТЗ;
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(ололо)
   |Э = Справочник.Материалы.ТекущийЭлемент;
   |Н = Справочник.Материалы.Наименование;
   |Ц = Справочник.Материалы.Цена;
   |Условие(Н=ВыбрНаименование);
   |Условие(Ц=ВыбрЦена);
   |"//}}ЗАПРОС
   ;
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       Возврат 0;
   КонецЕсли;
   Запрос.Выгрузить(ТЗ,3,3);
   ТЗ.ПолучитьСтрокуПоНомеру(1);
   Возврат ТЗ.Э;
КонецФункции
91 фобка
 
28.01.13
16:34
(90) откровенно говоря, слабая реализация.. с другой стороны - работает и пофиг
92 DES
 
28.01.13
16:34
(91) не работает, двоит
94 фобка
 
28.01.13
16:36
(90) нет, не работает.

Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       Сообщить("не работает запрос")
Возврат -1;
   КонецЕсли;

Запрос.Выгрузить(ТЗ,3,3);
Если ТЗ.КоличествоСтрок() = 0 ТОгда
Возврат 0;
Иначе
   возврат ТЗ.GetValue("Э",1);
КонецЕсли;
95 Ёпрст
 
28.01.13
16:37
(94) и это тоже не спасёёт
96 Ёпрст
 
28.01.13
16:37
ладно кипятите дальше
:)
97 DES
 
28.01.13
16:38
Запрос не возвращает ничего и никогда
98 Ёпрст
 
28.01.13
16:38
(97) см (93)
99 фобка
 
28.01.13
16:38
(97) параметры не передал
100 DES
 
28.01.13
16:38
помогите с черным Запросом
101 DES
 
28.01.13
16:40
(98) а как ты догадался ?
102 Дядя Вова
 
28.01.13
16:40
В 77 же вроде чорные запросы без функции не работают, не?
103 Ёпрст
 
28.01.13
16:40
(102) работают
104 DES
 
28.01.13
16:41
(103) ну тебя еще долго упрашивать, сколько ты обычно ломаешься ?
105 Ёпрст
 
28.01.13
16:42
Такую элементарщину пишут в начале, а не в конце..
106 Ёпрст
 
28.01.13
16:43
мне лень.
107 aka AMIGO
 
28.01.13
16:43
(90) поясеи: ищешь элемент с наименованием и ценой, если цена отличается - то создаешь новый элемент с таким-же наименованием?
а как потом с ними разбираться будешь?
108 aka AMIGO
 
28.01.13
16:43
поясеи =  поясни
109 Масянька
 
28.01.13
16:44
(104) Когда просят - говорят "Пожалуйста". А с Ёпрст так разговаривать нельзя.
110 aka AMIGO
 
28.01.13
16:45
да ни с кем так разговаривать нельзя
111 DES
 
28.01.13
16:46
(107) это не тот вопрос на который мне нужен ответ.
112 aka AMIGO
 
28.01.13
16:46
понятно.
113 DES
 
28.01.13
16:46
(109) обычно я говорю спасибо в конце, если есть за что.
114 фобка
 
28.01.13
16:47
(111) так найди ответ самостоятельно, тебе никто здесь ничем не обязан
115 Масянька
 
28.01.13
16:48
(113) А речь не про "Спасибо".
118 Масянька
 
28.01.13
16:50
(116) Про русский - не согласна. Про остальные - не знаю. Чего пришел-то на русский тогда? Остальные - не в теме?
119 Ёпрст
 
28.01.13
16:51
(117) Отвечать на примитив для начинающих, ответ на который решается самостоятельно за 1 минуты не комильфо.

Переделать нерабочий код из (90) в рабочий - еще быстрее, нужно только подумать, что в нём неправильно.
120 zladenuw
 
28.01.13
16:51
(117) что проверить. если тебе уже намекали что нужно сделать. конфетку тебе, не кто тут не даст.
121 zladenuw
 
28.01.13
16:52
(119) клон ? или перерождение ?
122 DES
 
28.01.13
16:53
(120) просто удивляюсь, я не просил намеков. Я просил помощи.
Когда Вы просите помощи у врача, он Вам будет отвечать намеками, вам понравится?
123 DES
 
28.01.13
16:54
(121) ну какая тебе разница ?
Нечего ответить по теме, зачем вообще пылить ?
124 Масянька
 
28.01.13
16:55
(122) Смешной какой! :)))) Врач - поставит диагноз, но не расскажет, как он поставил диагноз.
125 DES
 
28.01.13
16:55
(119) Не хочешь отвечать на примитив - не отвечай, нахрена начинающему твои намеки ?
126 DES
 
28.01.13
16:56
(124) и расскажет и покажет, если он врач , а не шарлатан
127 Ёпрст
 
28.01.13
16:57
(125) если тебе дадут готовый ответ - ты его не запомнишь, если решишь сам - запомнишь навсегда.
128 Дядя Вова
 
28.01.13
16:57
Эх.. жаль РД закончился, весело тут у вас ))
129 DES
 
28.01.13
16:58
(125) это моя проблема, и мне не нужно тут искать педагогов.
130 Масянька
 
28.01.13
16:58
(126) Ну, с врачами тебе повезло. А вот с 1С - не очень.
131 DES
 
28.01.13
16:59
(127) я это все знал 7-10 лет назад
132 Масянька
 
28.01.13
16:59
(129) За готовые решения - платят (обычно).
133 DES
 
28.01.13
16:59
(130) через десяток лет с вами произойдет тоже самое.
134 Масянька
 
28.01.13
17:00
(131) Не знал. Я вот я знаю теорему Пифагора, хотя учила ее в школе, лет 20 назад.
135 Ёпрст
 
28.01.13
17:00
Ладно, хрен с тобой красна шапка

в условие сокрЛП, добавить группировку на выходе :

Запрос.Выполнить(ТекстЗапроса);
Возврат Запрос.Группировка(1);
136 DES
 
28.01.13
17:00
(132) это стоит 30 копеек, куда Вам перевести ?
137 zladenuw
 
28.01.13
17:00
Так сложно сделать ? пару минут блин.

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



Процедура Троль(Наименование,Цена)
   
   СпрН = СоздатьОбъект("Справочник.ТМЦ");
   ТекЭлемент = ?(Спрн.НайтиПоНаименованию("Наименование")=1,Спрн.ТекущийЭлемент(),"");
   Если ПустоеЗначение(ТекЭлемент)=1 Тогда
       Возврат 1;
   ИначеЕсли ТекЭлемент.Цена = Цена Тогда
       Возврат 0;
   Иначе
       Возврат 1;
   КонецЕсли;
КонецПроцедуры
138 Масянька
 
28.01.13
17:01
(133) Врач? Диагноз? Доктор, у меня вот ножка болит. Почему?
139 Ёпрст
 
28.01.13
17:01
(131)
"Не знал но забыл" ©Чьё то
140 111222333444
 
28.01.13
17:01
(129) Проблема-то может и твоя, только ты ж не запомнивши сейчас, потом опять прибежишь с тем же самым. Утомительно это.
Ёпрст за годом год дело говорит. Да плюс еще и готовое решение дал на предыдущей странице. А тебе всё не так
141 DES
 
28.01.13
17:03
135 Куда это лепить ?
142 Масянька
 
28.01.13
17:03
(136) У Ёпрст в личке есть счет - туда и переведи. Да уж и не 30 копеек, а рубль хотя бы.
143 Масянька
 
28.01.13
17:04
(141) Без слов..............

PS Пожалуй, и рубля будет мало.
144 Ёпрст
 
28.01.13
17:07
(141)
1.добавить СокрлП в условие по Наименованию в текст запроса
2.добавить группировку в текст запроса
3.делать возврат из функции, как в (135)
145 DES
 
28.01.13
17:07
ладно, спасибо.
Поднял свою старую конфу, вспомнил.
146 DES
 
28.01.13
17:10
думал, что спросить на форуме у спецов быстрее чем вспомнить пароль 10летней давности
147 Mikeware
 
28.01.13
17:11
(146) а зачем вспоминать пароль?
148 Mikeware
 
28.01.13
17:12
+(147)
не пел давно...
да и спел -  гавно...
©
149 Ёпрст
 
28.01.13
17:13
И чего, во всех конфах лепят кучу элементов с одинаковым наименованием, пр изменении цены ?
150 DES
 
28.01.13
17:13
(147) Зачем тебе это знать ?
151 Ёпрст
 
28.01.13
17:13
еще и паролят, чтоб этот позор никто не видел.
152 DES
 
28.01.13
17:14
(149) это всего лишь гипотетическая задача.
но смысл алгоритма не меняет
153 DES
 
28.01.13
17:15
(152)+  мне говорили что 1сники не понимают ничего кроме наименование, цена.
154 Mikeware
 
28.01.13
17:16
(153) ну, не все ж настолько тупые...
хотя некоторые, ставящие задачку "не понимающим 1сникам", еще тупее их...
155 DES
 
28.01.13
17:19
ну если бы ставящие задачу были острее - то накой тогда бы им понадобились тупые 1сники ???
156 akaBrr
 
28.01.13
17:20
(155) время в сутках ограничено, приходится разделять задачи
157 Mikeware
 
28.01.13
17:20
(155) бесспорно... но пока они не могут поставить задачу даже тупым 1снегам...
158 Mikeware
 
28.01.13
17:21
(156) тут не время в сутках ограничено тут постановщик ограничен
160 DES
 
28.01.13
17:24
(158) Вы лично взялись  дотянуть до 2-х часов ?
161 DES
 
28.01.13
17:25
(158) чтобы Вам помочь - я признаю себя чудаком в 1С, можете не стараться.
162 Ёпрст
 
28.01.13
17:27
По -ходу бананан всех покусал...
новый вирус на мисте
163 Mikeware
 
28.01.13
17:29
(162) а его кто укусил?
164 Ёпрст
 
28.01.13
17:30
хз, мот какая мутация 86 ?
166 Mikeware
 
28.01.13
17:37
(164) молдова. наверное, скорее чтото с биологией, нежели с радиацией...