Имя: Пароль:
1C
1С v8
УТ 10, подставлять хар-ку номенклатуры
,
0 Da D
 
15.02.17
09:46
Привет! В ЧекККМ добавляю строку ТЧ, выбираю номенклатуру и хочу, чтобы характеристика заполнялась сама!
Мне её нужно запросом получить ?
75 Da D
 
15.02.17
14:52
{Документ.ЧекККМ.Форма.ФормаДокумента.Форма(69)}: Индекс находится за границами массива
МояСерия=Результат[0];
76 Da D
 
16.02.17
07:05
Подскажите что не так ???
77 Da D
 
16.02.17
07:09
Почему индекс находится за границами массива
там 2 колонки ТЗ
78 Zombi
 
16.02.17
07:09
Результат запроса пустой, ты пытаешься обратиться сразу к 1 строке, а ее не существует. Дружище, ты бы хоть немного книжки почитал, прежде чем за задание браться. Просто вопросы настолько элементарные, что видно - знаний у тебя 0.
79 Zombi
 
16.02.17
07:09
(77) Колонки есть, строк нет.
80 Da D
 
16.02.17
07:10
(79) А почему он пустой то, номенклатура есть, серия есть в базе
81 Zombi
 
16.02.17
07:13
Значит нету. Либо номенклатуру не ту смотришь. Либо остатки не на ту дату смотришь. Но это уже телепатия пошла.
82 Da D
 
16.02.17
07:17
(81) Может запрос неверный ?
83 Мимохожий Однако
 
16.02.17
07:19
(82) Наверняка
84 Da D
 
16.02.17
07:20
(83) ну а можете посмотреть в (71) ?
85 Мимохожий Однако
 
16.02.17
07:25
Как я понял, ты консоль запросов так и не взял в руки. Режим отладки включил? Встань на строку с ошибкой и посмотри значения, которые получил.
Смотреть (71) должен ты на своей базе. Сколько бы я за тебя не съел плюшек, ты не наешься ©
86 Da D
 
16.02.17
07:27
(85) Посмотрел, он проверят Результат.Количество() > 0
А мне надо чтобы он смотрел КАКАЯ СЕРИЯ есть на складе и находя её выводит в строкуТЧ в колонку СерияНоменклатуры
87 Da D
 
16.02.17
07:27
т.е. на складе 100% товар будет, но не известно с какой серией, нужно находить какая серия есть
88 Мимохожий Однако
 
16.02.17
07:29
(86) Ответь про консоль запросов и отладчик. Только после этого есть смысл, что-то обсуждать.
89 Da D
 
16.02.17
07:30
(88) Он не выдаёт ошибку, если выбирать товар, который на складе есть
90 Da D
 
16.02.17
07:31
(89) Это ответ про отладчик
Но так или иначе в строке
СтрокаТабличнойЧасти.серияНоменклатуры=ТвояСерия;

находится СтрокаТЗ, а не её значение
91 Da D
 
16.02.17
07:32
92 Мимохожий Однако
 
16.02.17
07:32
(89) Теперь про консоль запросов. Ты ей пользуешься?
93 Da D
 
16.02.17
07:33
(92) Нет, не умею
94 Zombi
 
16.02.17
07:34
В (71)
ТвояСерия=Результат[0];
заменить на

ТвояСерия=Результат[0].СерияНоменклатуры;
95 Da D
 
16.02.17
07:35
(92) Я не понимаю как устанавливать параметры в консоли
В 1с я сделал Запрос.УстановитЬПараметр("",)
96 Zombi
 
16.02.17
07:35
Не понятно почему он у тебя ругается на индекс, находящийся за пределами границ. Ты же говоришь что строка ТЗ есть.
97 Zombi
 
16.02.17
07:36
(95) В консоли либо на отдельной вкладке параметры устанавливаются, либо в форме, которая вызывается по кнопке на форме.
98 Da D
 
16.02.17
07:38
(97) Ну а как я в консоли установлю ссылку на СтрокаТабличнойЧасти.Номенлатура ?
99 Da D
 
16.02.17
07:39
Теперь не понятно, почему он серию выдаёт пустую, если у номенклатуры она 100% есть
100 Мимохожий Однако
 
16.02.17
07:41
(93) Ты её открывал? Или не умеешь, потому что не открывал? Она тебе сэкономит кучу времени.
101 Мимохожий Однако
 
16.02.17
07:42
(99) Потому что запрос не верный. Возьми этот запрос и помести в консоль запросов.
102 Da D
 
16.02.17
07:44
(100) Открывал, даже не понял как там установить этот параметр
Запрос.установитьПараметр("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
103 Da D
 
16.02.17
07:46
(101) Я не могу его выполнить без параметра !!!!!!!
104 Da D
 
16.02.17
07:47
В общем если просто нажать "Заполнить из запроса"
И нажать "Выполнить"
То он выполняет запрос и никаких данных не возвращает
105 Мимохожий Однако
 
16.02.17
07:47
(102) В консоли запросов обычно есть кнопка Заполнить параметры из запроса. Переключаешься на закладку Параметры и присваиваешь нужный
106 Мимохожий Однако
 
16.02.17
07:48
присваиваешь нужное значение. Табличная часть документа здесь не при чём
107 Мимохожий Однако
 
16.02.17
07:48
(103) и не ори ))
108 Da D
 
16.02.17
07:51
109 Da D
 
16.02.17
07:52
Почему 2 раза одинаковые номенклатура и 1 с пустой серией ?
110 Мимохожий Однако
 
16.02.17
07:53
Потому что в остатках регистра есть остатки не только по выбранной номенклатуре с серией, но и с пустой серией.
111 Мимохожий Однако
 
16.02.17
07:54
Увидеть сможешь, если добавишь отбор на пустую серию и посмотришь ( через запрос) движение номенклатуры с пустой серией.
112 Мимохожий Однако
 
16.02.17
07:55
У регистра накопления есть не только остатки, но и движения.
113 Da D
 
16.02.17
08:10
(112) Мне это посмотреть в отчете Остакти и Обороты ?
114 Da D
 
16.02.17
08:10
остатки этой номенклатуры
115 Da D
 
16.02.17
08:15
Я посмотрел в регистре товары на складах там у Приход ламы есть серия а у Расход лампы нет серии втф ?
116 Мимохожий Однако
 
16.02.17
08:21
(113) Да. На уровне регистраторов.
(115) Это одна из причин. Осталось добраться до регистратора
117 Da D
 
16.02.17
08:21
В консоли показывает, что серии нет, а открыв номенклатуру - она там есть
http://s020.radikal.ru/i712/1702/f8/990e86d77ac9.png
118 Da D
 
16.02.17
08:22
(116) С регистраторов не совсем поятно
119 Da D
 
16.02.17
08:24
(116) Регистратора чего ? Там приход и списание регистраторы
120 Мимохожий Однако
 
16.02.17
08:24
(117) Наличие серии у номенклатуры не означает, что она используется во всех движениях. Сам же сказал, что у расхода нет серии. Вот и смотри документ с расходом и какие у него движения. Если добьешься, чтобы серия появилась, то и уберутся записи с пустой серией.
(118) Регистратор - это документ, к которому привязываются  движения регистра.
121 Da D
 
16.02.17
08:27
Указал серию в расходе и в запросе показывает
122 Мимохожий Однако
 
16.02.17
08:29
(121) Всё? Задача решена?
123 Мимохожий Однако
 
16.02.17
08:30
Мне до сих пор не понятна твоя задача. В типовом функционале при подборе есть флажок серии.
124 Da D
 
16.02.17
08:38
Нет, задача не решена, мне надо чтобы при выборе номенклатуры автоматом подставлялась серия, которая есть на складе
125 Da D
 
16.02.17
08:39
Допустим
Я выбрал ЛАМПА
у ЛАМПА есть ТРИ СЕРИИ
нужно узнать какая из 3 серий есть на складе и ту поставить
126 Мимохожий Однако
 
16.02.17
08:51
(125) При подборе номенклатуры (в типовом функционале) флажки количество, цена, серия видишь?
127 Da D
 
16.02.17
08:52
(126) Да, я вижу
А если серий 3, то им же неудобно выбирать будет
128 Мимохожий Однако
 
16.02.17
08:55
(127) Допустим у тебя три серии и у каждой по 4 штуки в остатке. Вопрос: Что должна подкинуть программа? Какое удобство ты можешь предложить?
129 Da D
 
16.02.17
08:57
(128) Не бывает такого
всегда 1
130 Мимохожий Однако
 
16.02.17
08:58
(129) В программу надо закладывать самые неудобные варианты, чтобы потом не переделывать.
131 Мимохожий Однако
 
16.02.17
08:58
Ответь на (126)
132 Da D
 
16.02.17
09:02
(131) Я ответил, вижу, но этот флажок серия всего лишь просит у пользователя выбрать серию, а не показывает какая из серий есть в наличии
133 Da D
 
16.02.17
09:11
Мне и нужно сделать так:
Выбрали Номенклатуру, 1с прошлась по всем сериям, узнала какая из них есть и подставила ей
134 Мимохожий Однако
 
16.02.17
09:13
(133) Ты сначала сформулируй алгоритм прохода. А когда сформулируешь, тогда и кодируй. Ты начал с хвоста.
135 Da D
 
16.02.17
09:14
(134) Я же сказал
1) Выбрали номенклатуру
2) 1с смотрит по какой из серий есть остатки
3) нашла - поставила в колонку Серии ту серию
всё
136 Мимохожий Однако
 
16.02.17
09:17
(135) Молодец. Теперь показывай код, который выполняет п.3
137 Da D
 
16.02.17
09:17
(136) А п2 не надо что ли делать ?
138 Мимохожий Однако
 
16.02.17
09:19
(137) по п.2 ты запрос уже сделал, как я понял.
139 Da D
 
16.02.17
09:21
(138) Ну а п3
Результат = Запрос.Выполнить().Выгрузить();
ТвояСерия=Результат[0].СерияНоменклатуры;

СтрокаТабличнойЧасти.серияНоменклатуры=ТвояСерия;
140 Мимохожий Однако
 
16.02.17
09:22
(139) Вот и результат.
141 Da D
 
16.02.17
09:24
(140) чего?
142 Мимохожий Однако
 
16.02.17
09:25
Что тебе не нравится? Получил серию - присвоил реквизиту строки. Перед заполнением добавь проверку.
Если Результат.Количество()=0, Тогда Продолжить; КонецЕсли
143 Da D
 
16.02.17
09:29
(142) дак не присваивается
144 Мимохожий Однако
 
16.02.17
09:31
(143) Присваивается пустая ссылка, т.к. у тебя есть остатки с пустой серией.
145 Da D
 
16.02.17
09:31
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ТоварыНаСкладахОстатки.Номенклатура,
               |    ТоварыНаСкладахОстатки.СерияНоменклатуры
               |ИЗ
               |    РегистрНакопления.ТоварыНаСкладах.Остатки(, номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки";
               Запрос.установитьПараметр("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
               Результат = Запрос.ВыполнитьВыгрузить();
Если Результат.Количество()=0 тогда
ТвояСерия=Результат[0];

КонецЕсли;
СтрокаТабличнойЧасти.серияНоменклатуры=ТвояСерия;
146 Da D
 
16.02.17
09:31
так?
147 Мимохожий Однако
 
16.02.17
09:33
(145) Если Результат.Количество()=0 тогда
Возврат;//Нет того, что хочется. Поплакал и вернулся
КонецЕсли;
ТвояСерия=Результат[0];
СтрокаТабличнойЧасти.серияНоменклатуры=ТвояСерия;
148 Мимохожий Однако
 
16.02.17
09:34
Встань отладчиком на строку:
Результат = Запрос.ВыполнитьВыгрузить();
и посмотри внимательно
149 Da D
 
16.02.17
09:36
Ну там строка Результат = запрос.выполнить().выгрузить();
если речь об этом
150 Мимохожий Однако
 
16.02.17
09:37
(149) Именно об этом и смотри, что выдает запрос.
Наверняка в первой строке, которую ты выбираешь кодом пустая серия. Всё по-честному. Только ты этого никак не можешь принять.
151 Da D
 
16.02.17
09:38
152 Da D
 
16.02.17
09:40
А запрос выдаёт вообще http://s018.radikal.ru/i506/1702/4f/0bc685c140f1.png
153 Мимохожий Однако
 
16.02.17
09:40
(145) здесь вторая ошибка. СтрокаТабличнойЧасти.серияНоменклатуры=ТвояСерия.СерияНоменклатуры;
154 Da D
 
16.02.17
09:41
155 Da D
 
16.02.17
09:42
О
а теперь подставляется
а оно точно берёт именно ту серию, которая есть на складе ?:?
156 Мимохожий Однако
 
16.02.17
09:43
Картинки научился показывать. Это хорошо. Осталось исправить ошибки кода.
157 Мимохожий Однако
 
16.02.17
09:43
(155) Это только ты сможешь определить или твой кладовщик
158 Мимохожий Однако
 
16.02.17
09:43
Мне надо ехать. Успехов
159 Da D
 
16.02.17
09:44
Спасибо огромное!!!! Удачи
160 Da D
 
17.02.17
06:07
чет не понятно...
запрос работает все норм, но, смотрю регитр товары на складах
делаю отбор по конкретной позиции
вижу что этой позиции осталось 24шт
но почему то именно в ПРИХОДЕ она без серии, а но если в нее провалиться и перейти назакладку серии - серия есть
что за фигня ?
161 Da D
 
17.02.17
07:14
Есть идеи ?
162 Da D
 
17.02.17
07:22
Если непонятно - могу прикрепить скриншоты
163 Da D
 
17.02.17
07:45
http://i026.radikal.ru/1702/24/d16aa370ad66.png

Вот
одна и та же номенклатура и у неё то есть то нет серий
из-за этого в ТЧ не проставляется серия
поч ???
164 Мимохожий Однако
 
17.02.17
07:51
(160) Сначала ответь на вопрос:
Почему в Приходе не указывают серии?
Посмотри движения документа Поступление на предмет наличия серий.
Если тебе надо, чтобы серии были всегда - запрети проведение документа без серий. Могу предположить, что реакция пользователей на это будет непредсказуемой.
165 Da D
 
17.02.17
07:52
(164) Там приход то с сериями то без серий
166 Da D
 
17.02.17
07:52
(164) они тупые
167 Мимохожий Однако
 
17.02.17
07:56
(165) Значит твои манипуляции с подбором серий излишни.
(166) Поосторожнее. Тупые более настойчивы и не всегда просты как кажется.
...
Мне кажется, проблема сабжа в нечёткости постановки задачи. Я, например, до сих пор не понял зачем тебе эти выборки по сериям. Пока воспринимаю твои исследования как тренировку в программировании.
168 Da D
 
17.02.17
07:58
Им это только сейчас срочно понадобилось, чтобы серии проставлялись
Но т.к. они уже принимали товар без серий - серия в чек не у всех товаров проставляется
и я не знаю как это теперь исправить
169 Мимохожий Однако
 
17.02.17
08:06
(168) Если они накосячили с установкой серий то тут два варианта.
1. Провести инвентаризацию и разобраться с пересортицей списав ненужные и оприходовав нужные серии. В таком случае в чек будут попадать серии, близкие к жизни. Но может получится так, что для товара  из 10 штук одной номенклатуры у тебя может быть 3 серии. Ты их все будешь печатать или через запятую с указанием количества?
2. Если п.2 не подходит, то достаточно запросом получать серии номенклатуры и подкидывать в чек ближайшую непустую серию как Бог на душу положит.
...
Я полагаю, что серии указывать в чеке не надо. Но убедить в этом Заказчика не моя проблема.
170 Da D
 
17.02.17
08:31
(169) Серии указывать в чеке надо!
Спасибо!
171 dezss
 
17.02.17
08:48
Спасиба, поржал.
МимохожийОднако, тебе респект за железобетонное терпение.)
172 Da D
 
17.02.17
09:12
+
173 Мимохожий Однако
 
17.02.17
09:15
(170) Какой вариант решения проблемы выбрал? Что решил проставлять в чеке, если нет подходящей серии?
Ответь, какой вариант решения выбрал.
174 Da D
 
17.02.17
09:23
(173) Они сами решают, наверное будут серии проставлять, они же сами хотят вести учет по сериям
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.