7.7 ТаблицаЗначений не заполняется =(

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

  1. TopicStarter Overlay
    U3BPaLLjeHeLj
    Offline

    U3BPaLLjeHeLj

    Регистрация:
    31 мар 2008
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Господа .. прошу помощи ...
    проблема - создаю внешнюю обработку... на форму добавил элемент диалоа - ТабицаЗначений. вывожу а нее из ехеля строчки ... в отадчике смарел - значения не пустые ... а по окончании обработки таблица на форме пустая ... ни колоки е добвленыни строк нет ...

    СпНайм - идентификатор таблицы на форме.

    код -
    Код:
    Процедура ЗаполнитьСписок()
    
    перем код;
    перем наименование;
    перем цена;
    перем количество;
    перем ГТД;
    перем странаПр;
    
    перем счетчикстрок;
    СпНайм = СоздатьОбъект("ТаблицаЗначений");
    счетчикстрок = 3;
    пока Лев(Таблица.ActiveSheet.Cells(счетчикстрок, 1).Value, 2) <> "" цикл
    // шапко тоблитсэ
    СпНайм.НоваяКолонка("Код");
    СпНайм.НоваяКолонка("Наименование");
    СпНайм.НоваяКолонка("Цена");
    СпНайм.НоваяКолонка("Количество");
    СпНайм.НоваяКолонка("ГТД");
    СпНайм.НоваяКолонка("Страна");
    
    код 			= Таблица.ActiveSheet.Cells(счетчикстрок, 1).Value;
    наименование 	= Таблица.ActiveSheet.Cells(счетчикстрок, 2).Value;
    цена			= Таблица.ActiveSheet.Cells(счетчикстрок, 3).Value;
    количество 	= Таблица.ActiveSheet.Cells(счетчикстрок, 4).Value;
    ГТД 			= Таблица.ActiveSheet.Cells(счетчикстрок, 5).Value;
    странаПр 		= Таблица.ActiveSheet.Cells(счетчикстрок, 6).Value;
    
    СпНайм.НоваяСтрока();
    СпНайм.код 				= код;
    СпНайм.наименование 	= наименование;
    СпНайм.цена				= цена;
    СпНайм.количество		= количество;
    СпНайм.ГТД 				= ГТД;
    СпНайм.Страна 			= странаПр;
    
    счетчикстрок = счетчикстрок + 1;
    КонецЦикла;
    
    КонецПроцедуры
    
  2. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    Если ТЗ лежит на форме, то строка СпНайм = СоздатьОбъект("ТаблицаЗначений"); не нужна. Закомментируйте. Если с формы ТЗ уберете, снимите комментарий.
  3. TopicStarter Overlay
    U3BPaLLjeHeLj
    Offline

    U3BPaLLjeHeLj

    Регистрация:
    31 мар 2008
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1

    Пасип добрый человек =)) все получло... а еще я тупанул не увдел разницу между СпНаЙм и СпНаИм =))
  4. TopicStarter Overlay
    U3BPaLLjeHeLj
    Offline

    U3BPaLLjeHeLj

    Регистрация:
    31 мар 2008
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    господа, опять ступор .... Как мне релизовать редактироваие элементов в ТаблицаЗначений, в ячейках на форме .. ?? двойным кликом тыкаюсь и тишина .... где что нада напесать ??
  5. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    А сдается мне, что и нельзя ТЗ на форме редактировать.
    Можно вызывать по двойному щелчку обработку в которую в качестве параметра передавать значение ячейки таблицы, а при закрытии формы обработки переформировывать таблицу с новыми данными.
    Или использовать в качестве формы для отчета объект документ.
  6. Akulina
    Offline

    Akulina Опытный в 1С

    Регистрация:
    30 авг 2007
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Steel Rain прав.
    Уважаемый U3BPaLLjeHeLj, а зачем Вы в цикле каждый раз создаете новые колонки СпНайм? Достаточно сделать это один раз вне цикла после СпНайм = СоздатьОбъект("ТаблицаЗначений");
  7. TopicStarter Overlay
    U3BPaLLjeHeLj
    Offline

    U3BPaLLjeHeLj

    Регистрация:
    31 мар 2008
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    эх жаль ...
    тогда походу вижу выход в том чтобы по двойноу клику или по нажатию кнопки ввод создавался обект типа строки , в координатах указателя мыши, в него передавалось значение из текущей ячейки, после редактирования в не в ту ячейку записывалсо измененный результат ...

    прокатит такая тема ? =)))

    ахха =))) тош косяк =) я уже заметил что кол-во повторяющихся наборов колонок равно кол-ву строк =)))) исправил =))
  8. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    К сожалению в 1С язык предметный и никаких визуальных объектов создать программно нельзя. Можно вызвать уже нарисованную форму другой обработки. Либо создать заранее на форме поле для редактирования и туда скидывать значения ячеек.
    Но тут возникает другая проблема: редактировать получиться только текстовые значения и потом довольно геморойно будет из них сделать значения справочников или чего то ещё. В общем такой вариант ИМХО целесообразен только если в таблице редактироваться будут текстовые поля.
  9. TopicStarter Overlay
    U3BPaLLjeHeLj
    Offline

    U3BPaLLjeHeLj

    Регистрация:
    31 мар 2008
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    да я потомс преобаоваием типов поиграю и мне кацца получится все ...

    у мя проблема терь с другим - как мне отловить события типа клик, дабл клик, кейпресс ... ??? чо та ваще иче подобного не вижу .. =(( я просто а С++ песал .. и пока после 2-хндельной практики программирования в 1С что то она мне ацца какой то неного кастрированной и дикой ....

    кто салкивался ил знет как мне тут отследить двойной клик - подскажите плиз ...

    З.Ы. ... а смысл всей обработки в том, чтобы из накладных определенного вида (формата) в ексель ... можно было автоматом перегружать номенклатуу (которой еще нет в осн. БД ) и проводить оприходвание ТМЦ ... кароч смысл - нажал на кнопку - вырал файлек тем что купили - и все что наа изменил там .. нажал на копу - провелось =) как бы во =)
  10. Steel Rain
    Offline

    Steel Rain Опытный в 1С

    Регистрация:
    29 сен 2006
    Сообщения:
    408
    Симпатии:
    2
    Баллы:
    29
    На сколько я помню, единственное событие, которое ловит ТЗ на форме это даблклик, им активизируется процедура указанная на вкладке "Дополнительно" в свойствах таблицы. Больше никакие события, вроде, не обрабатываются.
  11. X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    На вкладке "Дополнительно" в свойство "Формула" твоей таблицы царапаешь
    ОбработкаКликаПоТаблице(ТвояТаблица.ТекущаяСтрока(),ТвояТаблица.ТекущаяКолонка())

    В модуле пишешь процедуру (соответственно с поправкой на твои потребности). И вперед;)

    Код:
    Процедура ОбработкаКликаПоТаблице(Стр, Колонка)   
    Если Форма.ТолькоПросмотр() = 0 Тогда
    Если Стр > 0 Тогда     
    Если Колонка = "Количество" Тогда   
    Колич = 0;
    Если ВвестиЧисло(Колич,"Введите количество",14,3) = 1 Тогда   
    ТвояТаблица.Количество = Колич;
    КонецЕсли;
    
    КонецЕсли;
    
    КонецЕсли;    
    КонецЕсли;    
    КонецПроцедуры
    
    
    Это если тебе надо отдельно каждую ячейку редактировать, а если целиком, то тогда только через дополнительные формы. Только я не понял, почему только строки можно редактировать, объясните? Тип задал-и вперед.

    Если че-пиши :unsure:
  12. X-Man
    Offline

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

    Регистрация:
    18 май 2007
    Сообщения:
    428
    Симпатии:
    3
    Баллы:
    29
    Да не совсем. Как я уже написал, для редактирования каждой ячейки отдельно вполне достаточно набора системных функций.

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