Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> 1c. Объясните почему....
Начать новую тему   Ответить на тему   вывод темы на печать

1c. Объясните почему....

Автор
Сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 14:40.00
Ответить с цитатой
... находит тока первую запись, а не по ключу.

----Кусочек программки-----

ФайлБД.Ключ.Mes=2;
ФайлБД.Ключ.TN=ФайлТН.TN;
Если ФайлБД.НайтиПоКлючу(0)=1 Тогда

------------------------------------
Sad Surprised Razz
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 15:13.38
Ответить с цитатой
Bkmzzzz

А индекс добавил?
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 15:17.22
Ответить с цитатой
да
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 15:20.41
Ответить с цитатой
а ТекущийИндекс() чего возвращает?
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 15:27.10
Ответить с цитатой
строчка выше моей программки

ФайлБД.ТекущийИндекс("IDXTN");
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 15:32.07
Ответить с цитатой
Bkmzzzz


а этот- Mes?

и ФайлТН.TN чему равно?
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 15:44.01
Ответить с цитатой
поясняю, может поможет
ФайлТН.TN берет из базы ФайлТН табельный номер.
ищет его в ФайлБД (их там много, точнее не больше 12)
а MES это месяц ,в данном случае 2 взал чтоб попробывать...

вот что мне надо..
может я че делаю не так...
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 15:47.45
Ответить с цитатой
имхо

ФайлБД.Ключ.TN=ФайлТН.TN - некорректно.
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 15:59.54
Ответить с цитатой
почему?
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 16:11.36
Ответить с цитатой
Bkmzzzz

а какую именно запись возвращает ФайлТН.TN. Или у тебя там перебор идет выше?

Ты бы выложил листинг побольше. А то из этого нефига не понятно.
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 16:16.54
Ответить с цитатой
Процедура Сформировать()

Файл="zarab_06.dbf";
КонФайл="itog.dbf";
инд="Tn.cdx";

Файл1 = КонФайл;
Каталог1 = ФС.ТекКаталог();
ФС.ВыбратьФайл (0, Файл1, Каталог1, "Открыть ДБФ", "*.dbf", "dbf", );
Т2=Каталог1+Файл1 ;


ФайлТН = создатьОбъект("XBASE");
ФайлТН.ОткрытьФайл(Т2);
ФайлТН.КодоваяСтраница(1);
Если ФайлТН.Открыта()=0 Тогда
Сообщить("Не удалось открыть файл!");
КонецЕсли;


ФайлТН.Первая();
Пока ФайлТН.ВКонце()=0 Цикл
Начисленно=0;
МатПом=0;
Налог=0;
Необлаг=0;
Лгот=0;
Иждив= 0;
Мес=0;
Для пер=1 По 5 Цикл
Если пер=1 Тогда Путь1=Каталог1+"bd\" КонецЕсли;
Если пер=2 Тогда Путь1=Каталог1+"DNEV\" КонецЕсли;
Если пер=3 Тогда Путь1=Каталог1+"PLATN\" КонецЕсли;
Если пер=4 Тогда Путь1=Каталог1+"SMP\" КонецЕсли;
Если пер=5 Тогда Путь1=Каталог1+"strah\" КонецЕсли;
ФайлБД = создатьОбъект("XBASE");
ФайлБД.ОткрытьФайл(Путь1+Файл,Путь1+инд);
ФайлБД.КодоваяСтраница(1);
Если ФайлБД.Открыта()=0 Тогда
Сообщить("Не удалось открыть файл!");
КонецЕсли;

ФайлБД.ТекущийИндекс("IDXTN");

ФайлБД.Ключ.Mes=2;
ФайлБД.Ключ.TN=ФайлТН.TN;
Если ФайлБД.НайтиПоКлючу(0)=1 Тогда
Если ФайлБД.MATPOM=0 Тогда
Начисленно=Начисленно+ФайлБД.NACH;
Налог=Налог+ФайлБД.NALOG;
Лгота=ФайлБД.LGOTA;
Необлаг=ФайлБД.NEOBL;
Лгот=ФайлБД.LGOT;
Иждив= ФайлБД.IGDIV;
Мес=ФайлБД.MES;
Иначе МатПом=МатПом+ФайлБД.MATPOM;

КонецЕсли;
КонецЕсли;

ФайлБД.ЗакрытьФайл();
КонецЦикла;
ФайлТН.УстановитьЗначениеПоля("NACH",Начисленно);
ФайлТН.УстановитьЗначениеПоля("MATPOM",МатПом);
ФайлТН.УстановитьЗначениеПоля("NALOG",Налог);
ФайлТН.УстановитьЗначениеПоля("LGOTA",Лгота);
Если Начисленно =0 Тогда
ФайлТН.УстановитьЗначениеПоля("NEOBL",0);
ФайлТН.УстановитьЗначениеПоля("LGOT",0);
ФайлТН.УстановитьЗначениеПоля("IGDIV",0);
ФайлТН.УстановитьЗначениеПоля("MES",Мес);
Иначе
ФайлТН.УстановитьЗначениеПоля("NEOBL",Необлаг);
ФайлТН.УстановитьЗначениеПоля("LGOT",Лгот);
ФайлТН.УстановитьЗначениеПоля("IGDIV",Иждив);
ФайлТН.УстановитьЗначениеПоля("MES",Мес);
КонецЕсли;
ФайлТН.Записать();
ФайлТН.Следующая();
КонецЦикла;
ФайлТН.ЗакрытьФайл();
КонецПроцедуры
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 16:23.55
Ответить с цитатой
а эта строка что у тебя делает?

ФайлБД.ТекущийИндекс("IDXTN"); 


Добавлено спустя 2 минуты 3 секунды:

и есть индекс IDXMes ?
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Dio
Шаман-заводчанин


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 29757


Статус: Offline
СообщениеДобавлено: 2007.02.26 16:24.04
Ответить с цитатой
Leon писал(а):
эта строка что у тебя делает

ИМХО аналог Set order to фоксового.
(в сторону) млин, для кого-то If then while и else несколько больше чем просто операторы 8(.
_________________
Йа - водоросль.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 16:27.27
Ответить с цитатой
устанавливает индекс, без ее ругаестя
говорит что нужно установить индекс
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 16:32.18
Ответить с цитатой
Bkmzzzz

на поле Mes тоже индекс нужен/ Раз ты по нему ключ делаешь/
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.26 16:36.29
Ответить с цитатой
пробыват таже х.... получается...

Добавлено спустя 2 минуты 21 секунду:

Dio писал(а):
[ млин, для кого-то If then while и else несколько больше чем просто операторы 8(.


полностью согласен.... Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2007.02.26 16:42.03
Ответить с цитатой
Bkmzzzz
Попробуй индех IDXMesTN. По двум полям.
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.02.27 08:57.21
Ответить с цитатой
Выдает полную......
Посмотреть профиль Отправить личное сообщение ICQ Number
Bkmzzzz
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 26.01.2006
Сообщения: 192
Откуда: Шадринск родимый

Статус: Offline
СообщениеДобавлено: 2007.03.02 09:10.13
Ответить с цитатой
вот так я, пока, вывернулся.... может кому пригодится...
-----
ФайлБД.ДобавитьИндекс("IDXTN", "TN+MES", 0, 0, "MES=2");
-----
при создании индекса поставил фильтр ....

и для надежности.... (так сказать контрольный в голову... Smile )
-----
Если ФайлБД.НайтиПоКлючу(0)=1 Тогда
Если ФайлБД.MES=Месяц Тогда
-----
Посмотреть профиль Отправить личное сообщение ICQ Number
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Общие вопросы программирования -> 1c. Объясните почему....

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы