7.7 Форма списка справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Артур, 20 июн 2008.

  1. TopicStarter Overlay
    Артур
    Offline

    Артур Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    База Торговля и Склад. Есть справочник Номенклатура в нем есть поле Артикул(добавлено в типовой), меня попросили добавить поле Артикул2. Для некоторой номенклатуры пользователи будут заполнять поле Артикул а для некоторой Поле Артикул2. В форме Списка вставлять два поле Артикул и Артикул2 не хочу. Хочется чтобы было одно поле Артикул (не реквизит справочника а просто поле) и в форме списка для каждой номенклатуры туда попадало либо значения из поле Артикул либо из поле Артикул2. Можно так сделать ? Проблема у меня заключается в том что нету в форме списка справочника процедуры при выводе каждой конкретной строки.
  2. X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    439
    Симпатии:
    3
    Баллы:
    29
    На мой взгляд, на форме все-же придется разместить 2 колонки, расположенные рядом, но в процедуре ПриОткрытии() добавить что-то типа

    Код:
    Если (УсловиеДляВыводаПоляАртикул) Тогда   
    Форма.Артикул.Видимость(1);
    Форма.Артикул2.Видимость(0); 
    Иначе
    Форма.Артикул.Видимость(0);
    Форма.Артикул2.Видимость(1);         
    КонецЕсли;     
    
    
    Так не устраивает? По-другому, по-моему, никак.
  3. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Можно дабавить текстовый реквизит в таблицу, а занчение его будет формироваться функцией, т.е. либо значение артикула, либо артикула2.
  4. TopicStarter Overlay
    Артур
    Offline

    Артур Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Если не как то придется использовать этот вариант. Спасибо
  5. X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    439
    Симпатии:
    3
    Баллы:
    29
    А для спасибы есть специальная кнопочка :unsure:
  6. TopicStarter Overlay
    Артур
    Offline

    Артур Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    А где именно вызывать эту функцию т е например в форме списка содержится 30 позиций, у некоторых заполнено поле Артикул у других Артикул 2. Как мне вызвать эту функцию для всех 30 позиций можно подробнее.
  7. X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    439
    Симпатии:
    3
    Баллы:
    29
    Да, действительно, ступил я. Не подойдет мое предложение. Сейчас подумаю еще.
  8. X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    439
    Симпатии:
    3
    Баллы:
    29
    Посмотри вот это. Думаю, разберешься. Если что-пиши, буду рад помочь.

    Вложения:

  9. TopicStarter Overlay
    Артур
    Offline

    Артур Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Нет такой вариант не подходит.
    Они специально разграничили Артикул 1 и Артикул 2 потому что идет обмен данными с германской программой. В эту программу передаются данные только из Артикула 1 (там содержатся артикул для германских поставщиков) а в Артикуле 2(артикул для наших поставщиков). Данные в базу по этим двум полем уже введены более 3000 позиций.
    Чтоб работал твой вариант мне нужно Создать дополнительно поле Артикул ну и переносить туда уже введенные данные из двух поле Артикул 1 и 2. Тогда обмен данными с гер программой будет идти через поле Артикул 1, наших поставщиков они будут задавать в поле Артикул 2 ну а новое поле Артикул получается чисто бля отображения в форме списка.
    Такой вариант можно конечно использовать но по мойму первый вариант проше.
  10. eviloid
    Offline

    eviloid Опытный в 1С

    Регистрация:
    15 май 2008
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
    есть такой вариант:

    в форме списка справочника Номенклатура в многострочную часть (таблицу) добавляем колонку. В её свойствах указываем формулу ПолучитьНужныйАртикул().

    В модуле формы списка:
    Код:
    Функция ПолучитьНужныйАртикул()
    
    ТекЭлем = ТекущийЭлемент();
    
    Если ПустоеЗначение(ТекЭлем) = 1 Тогда
    Возврат "";
    Иначе
    Если ТекЭлем.ЭтоГруппа() = 0 Тогда
    Если ПустоеЗначение(Артикул) = 0 Тогда
    Возврат Артикул;
    ИначеЕсли ПустоеЗначение(Артикул2) = 0 Тогда
    Возврат Артикул2;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    Возврат "";
    КонецФункции //ПолучитьНужныйАртикул 
    
    
    :unsure:
  11. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    См. еще раз
    Это тебе надо

    А вот и функцию любезно предоставил "Evld"
  12. X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    439
    Симпатии:
    3
    Баллы:
    29
    Ты меня пугаешь. В таком случае я не понимаю, почему предложенный вариант не катит. Я же не говорю, чтобы ты обязательно давал реквизитам именно такие идентификаторы. Считай тогда что в моем примере Артикул это тоже, что у тебя будет Артикул2. Выведи на форму его. А первый вариант не подойдет(с видимостью), надеюсь, понимаешь, почему.
  13. X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    439
    Симпатии:
    3
    Баллы:
    29
    А ты вообще открывал окно редактирования свойств поля Артикул? Такое впечатление, что нет. :unsure:
    Вообще-то там вызывается функция, которая формирует значение реквизита Артикул. Значение этого поля сформируется и сохранится(а не будет постоянно вычисляться как в твоем варианте,WarDer, обрати внимание) при первом открытии формы списка. Так что все катит.

Поделиться этой страницей