Имя: Пароль:
1C
 
Добавление столбца в таблицу
0 Dexx
 
01.06.05
14:37
Добрый день! В виду своей малой компетентности в програмировании на 1с прошу: помогите!
Существует следующая проблемма: при выдаче материалов со склада сотрудник пользуется документом "выдача материалов". После введения всех необходимых данных, он нажимает кнопку "подбор",и видит остатки материалов на складе.Дело в том, что в этой таблице не хватает важного стобца с номером данного материала. Очень нужно этот столбец сделать чтобы сотрудник набивал код и материал сразу оказывался у него перед глазами. Если все таки кто нибудь решиться мне помочь, то заранее просьба поподробнее.
1 Crew
 
01.06.05
14:48
конфигурация какая?
2 иносказатель
 
01.06.05
15:35
Форма справочника "ДляПОдбора" - добавляй в список элементов реквизит "КОд"

(1) А какая разница?
3 Парижская фанера
 
01.06.05
15:36
(2) Если ТиС то можно в сторону артикля рыть...
4 Crew
 
01.06.05
15:37
(2)
Большая. Уверен что там есть форма списка "ДляПОдбора"? А справочник как называется?
5 goodfella
 
01.06.05
15:38
А где автор?
6 иносказатель
 
01.06.05
15:39
(4) А какая разница как называется форма используемая для подбора? Смысл главное.

Вот скажи, щас он тебе ответит "Учёт тараканов для Замбабве". Тебе легче станет?

Конечно, проще всего открыть конфу и глянуть чего и как. А может лучше чтобы человек сам немного подумал - для профилактики
7 Беглый
 
01.06.05
15:39
А справочник скорее всего называется "Номенклатура"..
8 goodfella
 
01.06.05
15:41
(7) А вдруг "Материалы"?
9 иносказатель
 
01.06.05
15:41
(+3) А раз речь идёт о "выдачи материалов" - то скорее всего конфигурация - производство. Или комплекс.....
10 Беглый
 
01.06.05
15:42
(8) А вдруг, Номенклатура
11 Crew
 
01.06.05
15:42
(6)
Да мне станет легче буду знать что отвечать. вообще универсальный ответ "Читай ЖКК" или РТФМ, и пусть думает..
12 Беглый
 
01.06.05
15:44
(8) Название идентификатора справочника, как бы он не назывался, можно получить из таблицы документа.. И если это окажеться Номенклатура, с тебя пиво
13 иносказатель
 
01.06.05
15:44
(11) Давай тебе так скажем?

Нужно подтолкнуть человека к решению проблемы а не кичиться крутизной, зная такие слова как "ЖКК" и "РТФМ".
14 Беглый
 
01.06.05
15:47
Dexx, и в самом деле, почитай книжку,..
15 goodfella
 
01.06.05
15:49
(12) Ни фига, блин. :-)
16 Crew
 
01.06.05
15:49
(13)
Какой нервный однако. Вроде крутизной я не кичился, да и никогда себя к крутым одноэсникам не причислял. А вам уважаемый отдыхать чаще нужно сходите например на иглорефлексотерапию (я еще и не такие слова знаю ;)
17 Парижская фанера
 
01.06.05
15:50
10 баксов на goodfella!!
18 Crew
 
01.06.05
15:51
(16)+
Да и вроде как (6) был не для (0), а персонально для Вас "иносказатель"
19 иносказатель
 
01.06.05
15:52
(16) я не нервный, я разве тебя назвал "крутым"? Ты ошибаешься..... За совет по поводу отдыха - спасибо - непременно воспользуюсь, а вот на сеанс иглотерапии не пойду - уколов боюсь.....
20 Crew
 
01.06.05
15:52
(17)
там справочник неопределенного вида
21 Crew
 
01.06.05
15:54
(19)
Теперь я понял смысл твоего ника ;) "кичиться крутизной" это не равнозначно назвать "крутым"
22 Беглый
 
01.06.05
15:55
(20) хм..в этом я очень сомневаюсь..Да и вообще-то хозяин ветки, думаю, уже все и сам, без нашей помощи во всем разобрался.. Разве что кому-нить 10 баксов заработать
23 goodfella
 
01.06.05
15:56
Вот скоро автор соизволит вернуться, и скажет что-нибудь типа:
-Всем спасибо, разобрался сам, на форме подбора оказывается есть кнопка "Колонки", там достаточно включить видимость колонки "Код".

Или что-нибудь вроде того. :-)
24 Беглый
 
01.06.05
16:01
(23) ..и добавить, - "а справочник называется "Номенклатура"
25 иносказатель
 
01.06.05
16:02
(21) Неправильно. Говорить "я крутой" и быть им - разные вещи...
26 Dexx
 
01.06.05
16:44
Извиняюсь, дела одолели конфигурация называется 1с предприятие
27 Dexx
 
01.06.05
17:08
Справочник называется "материалы".Добавил реквизит "код".Потом нажал кнопку Формы списка там нашел "ДляПодбора" и увидел свою старую добрую таблицу, которую мне и надо модифицировать! не подскажите, что дальше?
28 Crew
 
01.06.05
17:11
(21)
Разговор слепого с глухим.

(27)
Блин тебе ведь иноговоритель все подсказал, осталось только подумать...
29 Crew
 
01.06.05
17:14
(27)
Слушай а как ты смог реквизит код добавить? Расскажи...

А вообще табличку увидел выбирай пункт меню вставить -> реквизиты диалога
30 Беглый
 
01.06.05
17:18
Млин..остался я без пива
31 Casatka
 
01.06.05
17:18
Как точно называется документ? Он свой или типовой?
32 Парижская фанера
 
01.06.05
17:24
Консилиум телепатов
33 Dexx
 
01.06.05
17:29
Sorry, вру. при попытке назвать новый реквизит именем "код" он заругался. Назвал "номер"
34 Dexx
 
01.06.05
17:30
Документы=> складской учет=> отпуск материалов
35 Dexx
 
01.06.05
17:34
Короче говоря я открыл в конфигураторе справочник "материалы", там нажал формы списка и для подбора. Увидел родную таблицу. Нажал вставить\реквизиты там наконец то увидел что нет галочки напротив параметра "код". Поставил галку. сохранил, запустил 1с предприятие, включаю подбор - кода нет :(. Что еще попробывать?
36 Беглый
 
01.06.05
17:34
(33) Убей свой реквизит "Номер"..
Открываешь в конфигураторе эту форму подбора (справочник Материалы)
Меню->Вставить->Реквизиты-> поставь галочку на против "Код"->Нажми кнопку вставить..
После мышкой перетащи вставленную колонку(по умолчанию она будет самой последней) туда, куда тебе удобно
37 Беглый
 
01.06.05
17:36
(35) Она есть, просто скорее всего за пределами экрана..
38 Dexx
 
01.06.05
17:38
Это я уже сделал. Проблемма в том, что конфигуратор видит сделанные мной изменения. А запускаю 1с - все осталось по прежнему.
39 Беглый
 
01.06.05
17:42
Не должно быть..Мышкой подвигай..Передвинь Колонку "Код" в самое начало (возможно еще - свойства колонки-> сделать невидимым, хотя сомневаюсь, по умолчанию все должно быть видимо
40 sserj
 
01.06.05
17:44
(38) А после того как изменил форму, конфигурацию сохранил?
41 Беглый
 
01.06.05
17:46
Ну да..конфигурацию бы сохранить не плохо было бы..
42 Dexx
 
02.06.05
08:42
Доброе утро! Да конфигурацию я естественно сохранил, у меня возник вопрос. Может ли быть так, что этот столбец не отображается по причине его не связанности с чем то еще или может быть ему необходимо что то вроде ссылки на значения, чтобы их оттуда брать, хотя впринципе, если бы такое было он просто был пустым а не вообще не отображался?
43 По идее так
 
02.06.05
08:46
Смотри в справочнике : длина кода случаем не 0 ???
44 Dexx
 
02.06.05
08:48
Длина кода 10.
45 По идее так
 
02.06.05
08:49
(42) Так у тебя столбец не виден ? Посмотри в форме списка для подбора, ту колонку которую ты всавил :  Не стоит ли там галка "Сделать невидимым"
46 Dexx
 
02.06.05
08:50
нет это я уже проверял. Галок типа сделать невидимым и запретить редактирование нету
47 По идее так
 
02.06.05
08:51
+(42) Ты конфу то со своими изменениями сохранил ??

PS: Должно быть типа .. анализ изменения конфы,...реорганизация завершена .. бла бла бла ....

Было такое ??
48 Dexx
 
02.06.05
08:52
Меня что смущает у него значение строка и его никак не изменишь. Должно быть так?
49 Dexx
 
02.06.05
08:53
Да да такое было
50 По идее так
 
02.06.05
08:54
(47) И на последок ... А ты уверен, что открываешь (в самой 1с-ке) форму списка для подбора ??? (  А не просто форму списка).....

Если нет , проделай всё тоже самое только с формой списка справочника (т.е добавь реквизит код ...)
51 Dexx
 
02.06.05
08:55
Ок щас попробую
52 По идее так
 
02.06.05
08:56
(48) Тип значения кода тут не имеет значения
53 Dexx
 
02.06.05
11:03
С ужастным чувством стыда сообщаю, что путем изучения кнопки "подбор" в диалоге документа "выдача материалов"я понял, что данная кнопка открывает совсем не справочник "материалы" а обработку "остатки материалов", именно в которую (оказывается!) и нужно внести изменения! Передо мной теперь встала следующая проблемма. Путем некоторой некомпетентной модификации я изменил модуль и программа стала очень ругаться на некорректное поведение некоторых строк. При открытии диалога там столбцов никаких нет, так что, как я понял редактировать надо непосредственно в модуле. Не подкинете идею?
Перем ТаблицаВыбора;
//--------------------------------------------------------------
Процедура ПриОткрытии()
   Перем Запрос, ТекстЗапроса;
   Если ТипЗначения(Форма.Параметр)<>0 Тогда
       ДатаДок=Форма.Параметр.Получить("ДатаДок");
       Док=Форма.Параметр.Получить("ТекущДок");
       ТекущФирма=Форма.Параметр.Получить("Фирма");
       МестоХранения=Форма.Параметр.Получить("МестоХранения");
       //ВидДок=Док.Вид();
       //Если (ВидДок="Выдача") ИЛИ (ВидДок="СписаниеСоСклада") Тогда
           ВыбРег="Склад";
       //ИначеЕсли (ВидДок="ВозвратОтМол") ИЛИ (ВидДок="СписаниеСМОЛ") Тогда
       //    ВыбРег="МатОтвЛица";
       //КонецЕсли;
   КонецЕсли;
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаДок по ДатаДок;
   |Фирма = Регистр.Склад.Фирма;";
   
   Если ВыбРег="МатОтвЛица" Тогда
       ТекстЗапроса=ТекстЗапроса+"
       |МестоХр = Регистр.МатОтвЛица.Ответственный;";
   ИначеЕсли ВыбРег="Склад" Тогда
       ТекстЗапроса=ТекстЗапроса+"
       |МестоХр = Регистр.Склад.Склад;";
   КонецЕсли;
   ТекстЗапроса=ТекстЗапроса+"
   //(Моё)|Код = Регистр."+ВыбРег+".Материал.Код
   |Материал = Регистр."+ВыбРег+".Материал;
   |Единица = Регистр."+ВыбРег+".Материал.Единица;
   |Колво = Регистр."+ВыбРег+".Колво;
   |Сумма = Регистр."+ВыбРег+".Сумма;
   |Условие(Фирма=ТекущФирма);
   |Условие(МестоХр=МестоХранения);
   |Группировка Материал без групп;
   |Группировка МестоХр без групп;
   |Функция КолвоКонОст = КонОст(Колво);
   |Функция СуммаКонОст = КонОст(Сумма);
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;


   Запрос.Выгрузить(Остатки,1,0);
       
   Остатки.УстановитьПараметрыКолонки("КолвоКонОст",,,,"Остаток",8,,);
   Остатки.УстановитьПараметрыКолонки("Единица",,,,"Ед.изм",6,,2);
   //(Моё)Остатки.УстановитьПараметрыКолонки("Код",,,,"Код",6,,2);
   Остатки.ВидимостьКолонки("Материал,Единица,КолвоКонОст,Код",1);
   Остатки.ВидимостьКолонки("МестоХр,Колво,Сумма,СуммаКонОст,Фирма",0);
   
   Форма.ИнфСтр.Заголовок("Остатки по объекту хранения "+МестоХранения);

     ////// Цвет

 
   Если Запрос.КолвоКонОст<0 Тогда
        Запрос.КолвоКонОст.Цвет(255,1,1);
   КонецЕсли;
//////




КонецПроцедуры
//--------------------------------------------------------------
Процедура ПриВыбореСтр()
   КолвоОст = Остатки.ПолучитьЗначение(Остатки.ТекущаяСтрока(),"КолвоКонОст");
   СуммаОст = Остатки.ПолучитьЗначение(Остатки.ТекущаяСтрока(),"СуммаКонОст");
   Если КолвоОст>0 Тогда
       Цена=СуммаОст/КолвоОст;
       Кол=0;
       Если ВвестиЧисло(Кол,"Введите количество",10,3)=1 Тогда
           Если Кол<=0 Тогда
               Предупреждение("Введите положительное число.");
               СтатусВозврата(0);
               Возврат;
           КонецЕсли;
           Если Кол>КолвоОст Тогда
               Если Вопрос("В наличии "+КолвоОст+" единиц этого материала. Выбрать весь остаток?",4)=6 Тогда
                   Колво=КолвоОст;
               Иначе
                   Возврат;
               КонецЕсли;
           Иначе
               Колво=Кол;
           КонецЕсли;
       Иначе
           Колво=0;
           Возврат;
       КонецЕсли;
       Сумма=Цена*Колво;
       //(Моё)ВыбКод=Остатки.ПолучитьЗначение(Остатки.ТекущаяСтрока(),"Код");
       ВыбМатериал=Остатки.ПолучитьЗначение(Остатки.ТекущаяСтрока(),"Материал");
       ВыбЕдиница=Остатки.ПолучитьЗначение(Остатки.ТекущаяСтрока(),"Единица");
       ВыбСумма=Остатки.ПолучитьЗначение(Остатки.ТекущаяСтрока(),"Сумма");

       Остатки.Выгрузить(ТаблицаВыбора,,1,);
       ТаблицаВыбора.УдалитьСтроки();
       ТаблицаВыбора.НоваяСтрока();
       //(Моё)ТаблицаВыбора.УстановитьЗначение(1,"Код",ВыбКод);
       ТаблицаВыбора.УстановитьЗначение(1,"Материал",ВыбМатериал);
       ТаблицаВыбора.УстановитьЗначение(1,"Единица",ВыбЕдиница);
       ТаблицаВыбора.УстановитьЗначение(1,"Колво",Колво);
       ТаблицаВыбора.УстановитьЗначение(1,"Сумма",Сумма);
       Форма.ВыполнитьВыбор(ТаблицаВыбора);
   Иначе
       Предупреждение("На складе нет этого материала");
   КонецЕсли;
КонецПроцедуры
//--------------------------------------------------------------
ТаблицаВыбора=СоздатьОбъект("ТаблицаЗначений");
(комментированые строки, начинающиеся со слова (моё)-моя попытка редактирования.
54 Ёпрст
 
гуру
02.06.05
11:14
>>"программа стала очень ругаться на некорректное поведение некоторых строк"

Что конкретно Вы изменили ?, и на что ругается ?
55 Dexx
 
02.06.05
11:26
Изменил строки, которые комментированныеи начинаются со слова (моё)
Ошибки:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Обработка.ОстаткиМатериалов.Форма.Модуль(45)}:  <<?>> Материал = Регистр.Склад.Материал;
Запрос[6] : Ожидается ';' перед 'Материал'

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Обработка.ОстаткиМатериалов.Форма.Модуль(45)}: Условие(Фирма=ТекущФирма <<?>> );
Запрос[10] : Ошибка в условии

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Обработка.ОстаткиМатериалов.Форма.Модуль(45)}: Условие(МестоХр=МестоХранения <<?>> );
Запрос[11] : Ошибка в условии

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Обработка.ОстаткиМатериалов.Форма.Модуль(45)}: Группировка Материал  <<?>> без групп;
Запрос[12] : Переменная  'Материал' не опеределена
56 Ёпрст
 
гуру
02.06.05
11:35
1.|Код = Регистр."+ВыбРег+".Материал.Код  - забыл поставить ";"

остальные ошибки следуют из 1.
57 Dexx
 
02.06.05
11:42
Действительно, супер, сколько я мучался! Только вот еще один вопро как сделать так, чтобы материал можно было выбрать из всей кучи с помощью поиска по коду. т.е. чтобы она набивала код в строке поиска под общим списком и оставалось только нажать энтер.И еще. насколько я понял порядок столбцов определяется их последовательностью в модуле,так? А чем определяется ширина столбца?
58 Ёпрст
 
гуру
02.06.05
11:47
1.В твоем случае порядок столбцов определяется в Запросе,из которого ты грузишь в ТЗ.
2.Ширина колонки в методе УстановитьПараметрыКолонки()


УстановитьПараметрыКолонки(<?>,,,,,,,);
Синтаксис:
УстановитьПараметрыКолонки(<Колонка>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
Назначение:
Устанавливает новые значения параметров колонки (только те, которые указаны). Если какой либо параметр при вызове метода не задан, то данный параметр колонки не изменяется.
Параметры:
<Колонка> - номер или код колонки, для которой будут установлены новые параметры.
<Тип> - необязательный параметр. Строка или вид субконто, задающий тип колонки. Если не указан, то можно хранить любой тип.
<Длина> - необязательный параметр. Длина для числовой или строковой колонки.
<Точность> - необязательный параметр. Точность (длина дробной части) для числовой колонки.
<Заголовок> - необязательный параметр. Строковое выражение, содержащее заголовок колонки в элементе диалога типа ''ТаблицаЗначений''.
<Ширина> - необязательный параметр. Числовое выражение, содержащее ширину колонки (в символах) для представления колонки в элементе диалога типа ''ТаблицаЗначений''.
<Формат> - необязательный параметр. Строковое выражение,     содержащее форматную строку, которая будет использована при визуальном отображении значений данной колонки.
<Положение> - необязательный параметр. Определяет вариант выравнивания при визуальном отображении значений данной колонки. Число: 1 - слева; 2 - справа.
59 Dexx
 
02.06.05
12:07
Да понял. А насчет вот этого поиска? Смысл в том, чтоб кладощик нажимал мышкой на стобец "код", набивал нужный номер,и строка перемещалась на нужный материал, ему только бы оставалось нажать "энтер"
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой