|   |   | 
| 
 | Значение не является значением объектного типа | ☑ | ||
|---|---|---|---|---|
| 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) Я, конечно, программист, а не консультант, но тут проблема, как мне кажется, в том, что внедрением как раз прогер занимается, а не консультант.
 При консультанте нормальном такого не будет. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |