Имя: Пароль:
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) Они сами решают, наверное будут серии проставлять, они же сами хотят вести учет по сериям
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший