|
Значение не является значением объектного типа | ☑ | ||
---|---|---|---|---|
0
Farid2015
14.09.15
✎
14:14
|
В форме документа в процедуре ТоварыНоменклатураПриИзменении(Элемент) написал:
Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.ВестиСерийник = Истина Тогда ТекСтрокаТовары.Количество = 1; ОформлениеСтроки.Ячейки.Количество.ТолькоПросмотр = Истина; КонецЕсли; КонецЦикла; В итоге ругается ) Покажите как надо?) |
|||
1
ДенисЧ
14.09.15
✎
14:15
|
Я не стану угадывать строку ошибки за три попытки!
Хотя и так всё ясно |
|||
2
butterbean
14.09.15
✎
14:16
|
просто ппц...
это нужно в ПриПолученииДанных делать |
|||
3
Farid2015
14.09.15
✎
14:19
|
Я и не спорю, что ппц) Учусь я еще методом проб и ошибок )
|
|||
4
ДенисЧ
14.09.15
✎
14:19
|
(3) А лучше учись методом чтения книжек...
|
|||
5
Farid2015
14.09.15
✎
14:22
|
Этот ответ тут часто звучит и естественно я должен ответить, что вот на выходных сяду за Радченко и Чистова, но некогда) Думал ткнете меня по-быстрому и все
|
|||
6
Михаил Козлов
14.09.15
✎
14:30
|
Что Вы написали, мы видим. А чего хотите добиться?
Если количество = 1, то достаточно, примерно такого: ТекСтрокаТовары = ЭлементыФормы.Товары.ТекущиеДанные; Если ТекСтрокаТовары.Номенклатура.ВестиСерийник = Истина Тогда ТекСтрокаТовары.Количество = 1; КонецЕсли; Если же запретить редактировать количество для таких строк, то это следует делать в другом событии табличного поля. |
|||
7
Farid2015
14.09.15
✎
14:35
|
В УПП нет учета по серийным номерам на сырье и материалы как таковое. Пытаюсь реализовать (не по сериям), в регистр сведений делается строчка при Поступлении товаров. При перемещении между складами следовательно строчка по одному складу удаляется, по другому создается. Мне надо заставить товарища кладовщика по-строчно добавлять по одной позиции в документ, если номенклатура имеет "Вести серийник" и в ячейку Серийник вводить серийный номер. Кол-во 1 подставляется автоматом, вот надо чтоб количество и не изменяли после.
|
|||
8
Михаил Козлов
14.09.15
✎
14:42
|
(7) а. Не красиво, но пусть изменяют, а Вы обратно в 1.
б. Посмотрите события табличного поля: кажется, ПередНачаломИзменения. Только имейте в виду, что в этом событии параметр "Элемент" - это табличное поле и для получения реквизитов строки нужно взять ТекущиеДанные. |
|||
9
Farid2015
14.09.15
✎
15:29
|
Короче, пришлось думать самому )
На форме дока ПриОткрытии ЭлементыФормы.Товары.Колонки.Серийник.Видимость = Ложь; Тут ТоварыНоменклатураПриИзменении(Элемент) Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.ВестиСерийник = Истина Тогда ТекСтрокаТовары.Количество = 1; ЭлементыФормы.Товары.Колонки.Серийник.Видимость=Истина; Предупреждение("По номенклатуре " +ТекСтрокаТовары.Номенклатура + "ведется серийный номер, не забудь ввести!"); КонецЕсли; КонецЦикла; и в ТоварыКоличествоПриИзменении(Элемент) Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.ВестиСерийник = Истина Тогда ТекСтрокаТовары.Количество = 1; Предупреждение("Не меняй кол-во, блеать!"); КонецЕсли; КонецЦикла; При проведении делаются записи в регистре сведений через Записи = РегистрыСведений.Серийники.СоздатьНаборЗаписей();, а также идет проверка заполнения серийников. Всем спасибо ) |
|||
10
Михаил Козлов
14.09.15
✎
15:39
|
(9) При таком ПриОткрытии, Вы столкнетесь с тем, что документ открыли, пытаются закрыть и получают предупреждение об изменении объекта. Кроме того, вряд ли оператор будет читать и записывать себе на бумажку на бумажку артикулы, по которым ему нужно не забыть указать серийник.
|
|||
11
Farid2015
14.09.15
✎
15:54
|
1) Предупреждения об изменении объекта при закрытии пустого незаполненного дока нет, спокойно закрывается.
2) ОбработкаПроведения(Отказ, РежимПроведения) Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.ВестиСерийник = Истина и ТекСтрокаТовары.Серийник = "" Тогда Предупреждение("Не введен серийный номер!"); Отказ=Истина; з=Записи.Добавить(); з.Документ=ЭтотОбъект.Ссылка; з.Родитель=ТекСтрокаТовары.Номенклатура; з.Серийник=ТекСтрокаТовары.Серийник; з.Склад=СкладОрдер; з.ЕстьНет=Истина; з.ПредСклад=""; Записи.Записать(); КонецЕсли; КонецЦикла; Не проводится док с пустым серийным номером. |
|||
12
Farid2015
14.09.15
✎
15:57
|
Отказ=Истина;
Иначе ) з=Записи.Добавить(); |
|||
13
1sanekmaloi1
14.09.15
✎
16:01
|
а если в серийник ввести пробел?
|
|||
14
Михаил Козлов
14.09.15
✎
16:02
|
(11) В модуле объекта НЕ рекомендуется использовать Предупреждение. Делайте такое предупреждение в модуле формы в ПередЗаписью, а в модуле объекта в ПередЗаписью проверяйте и вырабатывайте Отказ = ИСТИНА.
Про РС. Раз уж Вы пишете в него документ, как измерение, подчините тогда РС регистратору. Заодно не будет проблем с отменой проведения документа. |
|||
15
Farid2015
14.09.15
✎
16:04
|
Ок, спасибо, это все поправлю, первый день занимаюсь. Если подчинять регистратору, тогда нет отбора по другим измерениям (серийник).
|
|||
16
Farid2015
14.09.15
✎
16:06
|
Пробел пишется в рс, завтра буду это все доделывать)
Сейчас другая проблема появилась, док Перемещение товаров в проведении делает такое: Записи = РегистрыСведений.Серийники.СоздатьНаборЗаписей(); Записи.Отбор.Документ.Установить(ЭтотОбъект.Ссылка); Записи.Прочитать(); Записи.Очистить(); Записи.Записать(); Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.ВестиСерийник = Истина Тогда Записи = РегистрыСведений.Серийники.СоздатьНаборЗаписей(); Записи.Отбор.Родитель.Установить(ТекСтрокаТовары.Номенклатура); Записи.Отбор.Серийник.Установить(ТекСтрокаТовары.Серийник); Записи.Прочитать(); Записи.Очистить(); Записи.Записать(); з=Записи.Добавить(); з.Документ=ЭтотОбъект.Ссылка; з.Родитель=ТекСтрокаТовары.Номенклатура; з.Серийник=ТекСтрокаТовары.Серийник; з.Склад=СкладПолучатель; з.ЕстьНет=Истина; Записи.Записать(); КонецЕсли; КонецЦикла; Если кладовщик решит отменить проведение дока, нужно возвращать серийник на предыдущий склад ) А его я удалил проведением. Нужно новое измерение ПредСклад |
|||
17
1sanekmaloi1
14.09.15
✎
16:07
|
а кто учил имена такие дикие присваивать, "СерийныйНомер" нельзя назвать? Серийник звучит по гопски, как будто двоечник пишет.
|
|||
18
Михаил Козлов
14.09.15
✎
16:08
|
(15) Вам нужен учет серийных номеров? Тогда это регистр накопления (приходная накладная: приход, перемещение: расход со склада отправителя и приход на склад получатель, расходная накладная - расход).
|
|||
19
Farid2015
14.09.15
✎
16:12
|
В колонке ТЧ у каждого дока в шапке Серийный номер, так что норм, но учту, делаю на скорую руку.
А про регистр накопления... может и надо было, но начал на рс. У меня булево ЕстьНет отвечает за остатки ) Да и по сути, по тз нужно просто в будущем находить доки и видеть какой материал с каким серийников ушел на какую продукцию. Отчетов им не надо никаких, три раза переспросил. |
|||
20
Nuobu
14.09.15
✎
16:15
|
(19) Отчетов им не надо никаких - врут!
|
|||
21
aleks_default
14.09.15
✎
16:15
|
(0)мда, начал с запрета изменения значения в ячейке, закончите, навеное, написанием своей УПП?
|
|||
22
Farid2015
14.09.15
✎
16:16
|
Прост самоучка, вылез пробел в самоучении в виде объектного ориентирования ) Думал здесь быстренько укажут и дальше пойду, а тут ругать начали )
|
|||
23
Nuobu
14.09.15
✎
16:19
|
(22) Не тебя, а твой подход.
То, что ты делаешь, вылезет тебе боком. |
|||
24
Nuobu
14.09.15
✎
16:20
|
(22) Переделай на РН, вместо серийника введи СерийныйНомер.
СерийныйНомер сделай справочником, а не строкой. |
|||
25
Farid2015
14.09.15
✎
16:23
|
1)Если СерийныйНомер сделать справочником, то это почти копия серии в УПП, можно было изначально на ней делать.
2)Как заходят отчеты и РН, это доп ТЗ и деньги, ну как то так ) |
|||
26
Nuobu
14.09.15
✎
16:25
|
(25) Так используй серии.
|
|||
27
Farid2015
14.09.15
✎
16:30
|
Их кладовщику нужна строчка в доке, понимаешь ли лень зайти, создать новую строчку справочника и ее выбрать, плюс может ошибиться и выбрать имеющийся справочник, а тогда нарушается уникальность серийных номеров в природе )
А рисовать форму, которая за нее создавала бы и выбирала в док значение, мне было лень. Я пытался объяснить минусы, но как говорится - "что хотели, то и получат". |
|||
28
Nuobu
14.09.15
✎
16:34
|
(27) Я, конечно, программист, а не консультант, но тут проблема, как мне кажется, в том, что внедрением как раз прогер занимается, а не консультант.
При консультанте нормальном такого не будет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |