Допоможіть з строкою введення - 1С Предприятие 7.7 - Для программиста - Украинский форум 1C
Украинский форум 1C
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Модератор форума: Valerka 
Украинский форум 1C » Для программиста » 1С Предприятие 7.7 » Допоможіть з строкою введення
Допоможіть з строкою введення
AndersonДата: Пятница, 05.03.2010, 15:49 | Сообщение # 16
Полковник
Группа: Пользователи
Сообщений: 158
Репутация: 19
Статус: Offline
посмотрите как реализован механизм единиц измерения в типовых
 
ShlavikДата: Пятница, 05.03.2010, 16:07 | Сообщение # 17
Лейтенант
Группа: Пользователи
Сообщений: 55
Репутация: 135
Статус: Offline
Lighta, прошу прощения, но буду писать на русском.
До того как начать заполнение аналогов товара я бы определился со структурой данных.
1. Создал справочник "Аналоги", подчиненный справочнику ТМЦ.
2. У справочника Аналоги обязательно создал бы реквизит вида Справочник.ТМЦ.
После этого бы заморачивался способами заполнения справочника Аналоги (программно или интерактивно) и способом его отображения (в виде закладки с таблицей аналогов, списком или по кнопке)
Использовать реквизиты типа "строка неограниченной длины" старался бы в последнюю очередь...
В качестве примера рекомендую посмотреть конфигурацию ТиС в части справочник Номенклатура + ТипыЦен + Цены.
Имея Владельца-Элемент справочника ТМЦ, можно легко выбрать всех подчиненных ему Аналогов.

Bis dat, qui cito dat
(сокращение 32-ой сентенции Публия Сируса)
--------------------

Кто не читает личные сообщения (ЛС), тот... сам за себя...

 
LightaДата: Среда, 10.03.2010, 10:08 | Сообщение # 18
Лейтенант
Группа: Пользователи
Сообщений: 42
Репутация: 0
Статус: Offline
При відкритті форми Позиції наборів одягу має відображати в ТЗ аналогічні позиції одягу якщо вони є введені в довіднику СЗ(цей довідник ніхто не бачить, він зберігає тільки інфу про аналогічні позиції по коду ТМЦ через ; (тому використовую ИзСтрокиСРазделителем, ы тому КодТМЦ-строка з неогр.)
Процедура ПриОткрытии()
Перем Рек;
Перем а;
СпрСЗ=СоздатьОбъект("Справочник.СЗ");
СпрСЗ.ВыбратьЭлементы();
Если ПустоеЗначение(Рек)=1 Тогда
Возврат;
Иначе
Сп=СоздатьОбъект("СписокЗначений");
СпСЗ=СоздатьОбъект("Справочник.СЗ");
СпСЗ.ИспользоватьВладельца(ТекущийЭлемент());
СпСЗ.ВыбратьЭлементы();
Пока СпСЗ.ПолучитьЭлемент() = 1 Цикл
Сп.ДобавитьЗначение(СпСЗ.ПолныйКод(),СпСЗ.Наименование);
Сп.ДобавитьЗначение(СпСЗ.КодТМЦ,"КодТМЦ");
Сп.ИзСтрокиСРазделителями("КодТМЦ");
РазмерСписка=Сп.РазмерСписка();
СпТМЦ=СоздатьОбъект("Справочник.ТМЦ");
Для а=1 по РазмерСписка Цикл
Если СпТМЦ.НайтиПоКоду("КодТМЦ") Тогда;//має замість коду ТМЦ(Код) відображати назву ТМЦ
Назв_ТМЦ=СпТМЦ.Наименование;
Сп.ДобавитьЗначение("Назв_ТМЦ");
ТабЗнач.Выгрузить(Сп); //в таблицю значень має вигружати список значень у вигляді назв ТМЦ
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Але нічого нажаль не виводить в табл значень((

Сообщение отредактировал Lighta - Среда, 10.03.2010, 13:01
 
plusДата: Среда, 10.03.2010, 14:19 | Сообщение # 19
Полковник
Группа: Пользователи
Сообщений: 217
Репутация: 151
Статус: Offline
слишком мало информации, или я ничего не понимаю...
давайте с самого начала
1. в диалоге ТЗ есть? название?
2. реквизит типа строка неограниченной длины есть? название? он заполнена? чем заполнена(тип справочника и наименование реквизита)?
3. какие поля нужно отображать в ТЗ? они в строку неограниченной длины попадают?

Добавлено (10.03.2010, 14:19)
---------------------------------------------
4. ТЗ нужно будет редактировать? (добавить/удалить элементы)

 
LightaДата: Среда, 10.03.2010, 14:34 | Сообщение # 20
Лейтенант
Группа: Пользователи
Сообщений: 42
Репутация: 0
Статус: Offline
ТЗ є назва - ТабЗнач
Строка неогран. - в довіднику СЗ, назва реквізиту КодТМЦ, (заповнене щоб глянути чи відображає в ТЗ) заповнене кодами ТМЦ з довідника ТМЦ
В ТЗ потрібно відобразити з довідника СЗ поле КодТМЦ, попередньо з нього "витянути" напр. 234;455;455; коди ТМЦ і записати по цих кодах наименование ТМЦ у вигляді 1строка -Одяг 1, 2строка- Одяг 2
ТЗ треба буде редагувати, видаляти, щоб воно і видаляло з довідника СЗ

Сообщение отредактировал Lighta - Среда, 10.03.2010, 14:36
 
plusДата: Среда, 10.03.2010, 15:55 | Сообщение # 21
Полковник
Группа: Пользователи
Сообщений: 217
Репутация: 151
Статус: Offline
а в справочнике ТМЦ код строка или число?

Добавлено (10.03.2010, 15:55)
---------------------------------------------
хотя если нуно будет редактировать...
выложу свое решение чуть попозже, пока немного занят

 
LightaДата: Среда, 10.03.2010, 16:07 | Сообщение # 22
Лейтенант
Группа: Пользователи
Сообщений: 42
Репутация: 0
Статус: Offline
в довіднику ТМЦ тип кода - текстовый, але автоматично нумерує цифрами
ТЗ розташовано в формі ПозиціїНаборуОдягу

Сообщение отредактировал Lighta - Среда, 10.03.2010, 16:10
 
plusДата: Среда, 10.03.2010, 16:20 | Сообщение # 23
Полковник
Группа: Пользователи
Сообщений: 217
Репутация: 151
Статус: Offline
ТабЗнач - ТЗ, реквизит диалога, в формуле прописать ИзмТЗ()
КодТМЦ - реквизит справочника, тип - строка неогр. длины
добавить строку - кнопка, в формуле ТабЗнач.НоваяСтрока()
удалить строку - кнопка, в формуле ТабЗнач.УдалитьСтроку(ТабЗнач.ТекущаяСтрока());КодТМЦ=ЗначениеВСтроку(ТабЗнач)
в модуле справочника
Code
Процедура ИзмТЗ()
  кол="";
  Если ВвестиЗначение(кол,"Выбирите","Справочник.ТМЦ")=1 Тогда
   ТабЗнач.Аналог=кол;
   КодТМЦ=ЗначениеВСтроку(ТабЗнач);
  КонецЕсли;
КонецПроцедуры

в процедуре ПриОткрытии() добавить
Code
    ТабЗнач.Загрузить(ЗначениеИзСтроки(КодТМЦ));
  Если ПустоеЗначение(КодТМЦ)=1  Тогда
   ТабЗнач.НоваяКолонка("Аналог","Справочник.ТМЦ",,,,,,);  
  Иначе
   Попытка   
    ТабЗнач.УстановитьПараметрыКолонки("Аналог","Справочник.ТМЦ",,,"Аналог",50,);  
   Исключение  
   КонецПопытки;
  КонецЕсли;

Добавлено (10.03.2010, 16:20)
---------------------------------------------
а вообще для красоты формулы с кнопок можно перенести в модуль справочника, добавить там проверки, типа действия при удалении строки №0, очистку пустых строк, в процедуре ИзмТЗ() добавить проверку если текущая строка №0

 
LightaДата: Среда, 10.03.2010, 16:29 | Сообщение # 24
Лейтенант
Группа: Пользователи
Сообщений: 42
Репутация: 0
Статус: Offline
ПриОткрытии() добавити кусок до того що я написала? в яку частину саме?
КодТМЦ - реквізит довідника СЗ, який не видно взагалі на формі ПозиціїНаборуОдягу, просто з нього витягується інфа в ТЗ

Сообщение отредактировал Lighta - Среда, 10.03.2010, 16:35
 
plusДата: Среда, 10.03.2010, 16:55 | Сообщение # 25
Полковник
Группа: Пользователи
Сообщений: 217
Репутация: 151
Статус: Offline
я описал что нуно сделать из расчета что в этом справочнике ничего не менялось
 
LightaДата: Среда, 10.03.2010, 16:59 | Сообщение # 26
Лейтенант
Группа: Пользователи
Сообщений: 42
Репутация: 0
Статус: Offline
Тоді в яку частину процедури ПриОткрытии мені вставити
Code
    ТабЗнач.Загрузить(ЗначениеИзСтроки(КодТМЦ));  
   Если ПустоеЗначение(КодТМЦ)=1  Тогда  
    ТабЗнач.НоваяКолонка("Аналог","Справочник.ТМЦ",,,,,,);   
   Иначе  
    Попытка    
     ТабЗнач.УстановитьПараметрыКолонки("Аналог","Справочник.ТМЦ",,,"Аналог",50,);   
    Исключение   
    КонецПопытки;  
   КонецЕсли;

?
 
plusДата: Среда, 10.03.2010, 17:14 | Сообщение # 27
Полковник
Группа: Пользователи
Сообщений: 217
Репутация: 151
Статус: Offline
туда, где вам больше нравится - вначале/всредине/вконце - в любом месте процедуры ПриОткрытии()
хотя, если расчитываете ограничить доступ пользователям - лучше ставить сразу после ПриОткрытии()

Добавлено (10.03.2010, 17:14)
---------------------------------------------
надеюсь вы не догадаетесь ее добавить куда-нить всередину проверки или цикла wink

 
LightaДата: Пятница, 12.03.2010, 16:18 | Сообщение # 28
Лейтенант
Группа: Пользователи
Сообщений: 42
Репутация: 0
Статус: Offline
Такі догадалась cool в цикл добавити shy

Добавлено (12.03.2010, 16:18)
---------------------------------------------

Quote (plus)
Code
Процедура ИзмТЗ()
кол="";
Если ВвестиЗначение(кол,"Выбирите","Справочник.ТМЦ")=1 Тогда
ТабЗнач.Аналог=кол;
КодТМЦ=ЗначениеВСтроку(ТабЗнач);
КонецЕсли;
КонецПроцедуры

в процедуре ПриОткрытии() добавить

Code
ТабЗнач.Загрузить(ЗначениеИзСтроки(КодТМЦ));
Если ПустоеЗначение(КодТМЦ)=1 Тогда
ТабЗнач.НоваяКолонка("Аналог","Справочник.ТМЦ",,,,,,);
Иначе
Попытка
ТабЗнач.УстановитьПараметрыКолонки("Аналог","Справочник.ТМЦ",,,"Аналог",50,);
Исключение
КонецПопытки;
КонецЕсли;


Непрацює - вибирається елемент з довідника ТМЦ але в ТЗ нічого не відображається

Сообщение отредактировал Lighta - Четверг, 11.03.2010, 10:41
 
plusДата: Понедельник, 15.03.2010, 09:28 | Сообщение # 29
Полковник
Группа: Пользователи
Сообщений: 217
Репутация: 151
Статус: Offline
потому что не добавлена новая строка, т.е. номер текущей строки = 0
я описал как это должно быть - без проверок
вам нужно при добавлении новой строки в ТЗ поставить проверку, есть в ней строки или нет?
 
Украинский форум 1C » Для программиста » 1С Предприятие 7.7 » Допоможіть з строкою введення
Страница 2 из 2«12
Поиск: