Имя: Пароль:
1C
1С v8
Эксель: в табл.часть на форму внеш.обработки
0 листопад
 
03.05.14
13:59
Внешняя обработка. Загружаю из Эксель в табличную часть на форме обработки. Эксель-файл состоит из трех записей. В результате, грузит только первую и последнюю. Почему???
Вот код:

Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
    
    Таблица.Очистить();
    
    ФайлНаДиске = Новый Файл(Файл);
    Если Не ФайлНаДиске.Существует() Тогда
        Предупреждение("Файл не найден!");
        Возврат;
    КонецЕсли;    
    
    Ex = ПолучитьТаблицуExcel(Файл);
    
    СтруктураДанных = Новый Структура("ФЛ, НомерЛС");
    
    НомерЛиста  = 1;
    Ex.Sheets(НомерЛиста).select();  
    
    //Получим количество строк и колонок.
    Версия = Лев(Ex.Version,Найти(Ex.Version,".")-1);
    Если Версия = "8" тогда
        ФайлСтрок   = Ex.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Ex.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
        ФайлСтрок   = Ex.Cells(1,1).SpecialCells(11).Row;
        ФайлКолонок = Ex.Cells(1,1).SpecialCells(11).Column;  
    Конецесли;
    
    //определим по файлу в каких колонках необходимые данные
    НомерКолонкиФЛ = 2;
    НомерКолонкиЛС = 9;
    
    // Выбираем данные из файла
    Для НС = 2 по ФайлСтрок Цикл
        
        //Получим данные из соответсвующих ячеек
        ФЛ = СокрЛП(Ex.Cells(НС,НомерКолонкиФЛ).Value);
        ЛС = СокрЛП(Ex.Cells(НС,НомерКолонкиЛС).Value);
        ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(ФЛ);
        
        СтруктураДанных.ФЛ = ФизЛицо.Ссылка;
        СтруктураДанных.НомерЛС = ЛС;
        
        НоваяСтрока = Таблица.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураДанных);
        
        НС = НС + 1;
    КонецЦикла;
    Ex.Quit();
    
КонецПроцедуры
1 листопад
 
03.05.14
14:01
В отладчике, обрабатывает сначала запись НС=2, проходит цикл, а затем сразу НС=4. Куда теряется НС=3???
2 zulu_mix
 
03.05.14
14:04
НС = НС + 1;
вот это выкинь
3 ДенисЧ
 
03.05.14
14:04
Для НС = 2 по ФайлСтрок Цикл
       НС = НС + 1;
    КонецЦикла;

Милочка... Кто ж вас так писАть-то учил....
4 zulu_mix
 
03.05.14
14:05
или вместо Для НС = 2 по ФайлСтрок Цикл
напиши
НС=2;
Пока НС <= ФайлСтрок Цикл
5 листопад
 
03.05.14
14:06
(2) Да, спасибо. Уже сама нашла)))
6 zulu_mix
 
03.05.14
14:07
(5) спасибо это слишком много. достаточно 100 евро через вестерн юнион или фотку топлесс )))
7 Wobland
 
03.05.14
14:12
(6) фотка Франклина топлесс, я так понимаю, не устроит
8 Miracle_
Miracle
 
03.05.14
14:18
(6)Лучше поплесс.
9 echo77
 
03.05.14
14:39
(1) поделитесь, вы где работаете?
10 Torquader
 
03.05.14
14:45
Что я пропустил ?
Изменение счётчика цикла в самом цикле - жаль, что 1С не запрещает это делать, а то бы - программистов было меньше.
11 Torquader
 
03.05.14
14:51
Интересно, программы на Delphi такие же "умные" пишут ?
Или их туда просто не допускают.

P.S. а самое главное достижение в том, что мы уже умеем пользоваться отладчиком.
12 Wobland
 
03.05.14
14:54
(10) я строки в ТЧ удалял, отступая на шаг
13 Torquader
 
03.05.14
14:55
(12) И ты это делал в цикле For ?
14 Torquader
 
03.05.14
14:56
Просто, если одну часть кода скопировать из одного места, а другую - из другого - то вместо программы получается "фигура из четырёх букв".
15 Wobland
 
03.05.14
14:59
(13) наверняка. я протестую против запретов. если человек хочет хрень, ему её надо обязательно дать
16 Torquader
 
03.05.14
15:00
(15) А потом дать по шее, за использование всякой хрени - так ?
17 Wobland
 
03.05.14
15:03
(16) так. в самом широком педагогическом смысле нужно позволить сделать хрень, а потом потыкать носом и рассказать, как делать по-нормальному. этому меня один падаван научил ;)
18 листопад
 
03.05.14
15:52
(17) Отличие в том, что Вы не рассказываете как делать по-нормальному.
19 ДенисЧ
 
03.05.14
15:54
(18) Милая, Вам начиная с первых веток рассказывали, что и как.
Но когда упёрлись в нежелание самой понять... НАчали стебаться...
20 Wobland
 
03.05.14
15:54
(18) не все так считают
21 Torquader
 
03.05.14
15:56
(18) И что, мы прям таки не разу вам не помогли ? Или вы тоже
"Застыли на глазах алмазным блеском слёзы,
Чтоб доброту в миру не дать увидеть после."
?
22 листопад
 
03.05.14
16:03
(21) Речь идет о Wobland. Он никогда не помогает.
23 Torquader
 
03.05.14
16:05
(22) Некоторым его пинки вполне даже помогают, но код писать за кого-то ему лениво - видимо - не так просить надо.
24 Zhuravlik
 
03.05.14
17:24
(0) зачем сотый раз изобретать велосипед?
http://infostart.ru/public/163641/
+ Особенно, если после тебя его кому-то допиливать придется...
25 Zhuravlik
 
03.05.14
17:27
+ или хотя-бы так... http://infostart.ru/public/149994/
26 Torquader
 
03.05.14
17:38
(24) (25) У нас автор - специалист по велосипедам с квадратными колёсами, так что ему готовые не интересны.
И потом - он на инфросрате - мальчик.
27 Zhuravlik
 
03.05.14
17:47
)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший