Имя: Пароль:
1C
 
Помогите с Условием
0 bura_limon
 
20.12.10
17:40
Есть таб=Новый ТаблицаЗначений;
   таб.Колонки.Добавить("Код");
   таб.Колонки.Добавить("Ном");
   таб.Колонки.Добавить("Кол");
Для СчСтрок=4  По ТабДок.ВысотаТаблицы Цикл    
       Новстр =Таб.Добавить();
       Новстр.Код = Строка(ТабДок.Область(СчСтрок,1).Текст);
       Новстр.Ном = ТабДок.Область(СчСтрок,2).Текст;
       Новстр.Кол = Число(ТабДок.Область(СчСтрок,3).Текст);
   КонецЦикла
//И Есть |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КонОст
Выб = Запрос.Выполнить().Выгрузить();
   Отбор = Новый Структура;    
   Для Каждого Стр Из Выб Цикл
       Отбор.Вставить("Код",СокрЛП(Стр.НомКод));
       СтрПоиска = Таб.НайтиСтроки(Отбор);
       Если СтрПоиска.Количество()=0 Тогда
           Сообщить("Не найден код:    "+Стр.НомКод);
           продолжить;
       иначе
           Для каждого СтрНом из СтрПоиска Цикл
               Если СтрНом.Ном <>Стр.Номенклатура.Наименование Тогда
                   Сообщить("Номенклатура не совпадает: "+Стр.Номенклатура);
                   продолжить;
//Хочу вычислить как: Если СтрНом.Кол <> 0 Тогда
                       Если СтрНом.Кол >Стр.КонОст Тогда
Колич=СтрНом.Кол >Стр.КонОст
Подскажите,как правельно и получить результат?!СтрНом.Кол(Число)=4,Стр.КонОст(Число)=2.Что не так?!
1 lxs
 
20.12.10
17:54
Убил бы за такой код...

СтрНом.Кол >Стр.КонОст

СтрНом.Кол-Стр.КонОст - может так?
2 bura_limon
 
20.12.10
17:59
(1)Что то не поставил -,да именно так не работает.
Если СтрНом.Кол <> 0 Тогда
Если СтрНом.Кол >Стр.КонОст Тогда
Колич=СтрНом.Кол -Стр.КонОст
3 bura_limon
 
20.12.10
18:16
Кто подскажит?!
4 zladenuw
 
20.12.10
18:47
что именно не работает и что ты хочешь в итоге получить ?
5 bura_limon
 
21.12.10
08:58
(4)Хочу произвести вычетание СтрНом.Кол=4,Стр.КонОст=2,в итоге должен получить 2
Если СтрНом.Кол <> 0 Тогда
Если СтрНом.Кол >Стр.КонОст Тогда
Колич=СтрНом.Кол -Стр.КонОст
6 Mitriy
 
21.12.10
09:02
челюсть свело...
7 bura_limon
 
21.12.10
09:11
(6)в шоке?!
8 Найч
 
21.12.10
09:15
Если СтрНом.Кол <> 0 и СтрНом.Кол >Стр.КонОст Тогда
Колич=СтрНом.Кол -Стр.КонОст

собсна классно выходные прошли?
9 bura_limon
 
21.12.10
09:22
(8)переменную Колич не определена,и в Цикле и за Циклом объявляю,все равно не видит,
10 Renat11111
 
21.12.10
09:28
(0) это сон обкуренного 1с-ника?
11 bura_limon
 
21.12.10
09:32
(10)курнул бы
12 bura_limon
 
21.12.10
09:34
Ну Так что с этой переменной делать ребята,где/как её объявлять?!
13 hhhh
 
21.12.10
09:49
(12) Колич = 0; не спасет гиганта мысли?
14 bura_limon
 
21.12.10
09:58
(12)Колич = 0 не спасает,вы посмотрите вверху,у меня в Цикле данные из Запроса и ТабЗнач.,я так понимаю результат надо как то из цикла вывести и там уже объявлять в Колич.
15 Maxus43
 
21.12.10
10:00
ну почему сёдня не пятница? половину веток в мемориз просто
16 LegO
 
21.12.10
10:01
(1) правИльно
(3) подскажЕт

коряво пишешь как в сообщениях, так и в коде.
17 Ненавижу 1С
 
гуру
21.12.10
10:02
(14) а если все таки спасет, ну в самом верху ее определить
и вообще непонятно в чем задача то
18 bura_limon
 
21.12.10
10:03
(15)Ты тут сам по себе прогуливаешся.........
19 bura_limon
 
21.12.10
10:05
(17),в первую очередь вверху и внутри,у меня в Цикле почему то вооще не какие переменные не объявляются
20 hhhh
 
21.12.10
10:20
(19) в цикле вообще-то переменные не объявляют. Вдруг она вообще в цикл не войдет. Переменные нужно объявлять до цикла.
21 ice777
 
21.12.10
10:26
(0) еще не пятница!
взять учебник.
основы информатики.)
22 bura_limon
 
21.12.10
10:31
(20)До Цикла объявлял,щас разберусь,отпешусь........
23 bura_limon
 
21.12.10
12:34
(19)Вот смотри:
       перем Док;
   Колич = 0;

   ТабДок = Новый ТабличныйДокумент;
   ТабДок.Прочитать("D:Табличка.mxl");

   таб=Новый ТаблицаЗначений;
   таб.Колонки.Добавить("Код");
   таб.Колонки.Добавить("Ном");
   таб.Колонки.Добавить("Кол");

   Для СчСтрок=4  По ТабДок.ВысотаТаблицы Цикл    
       Новстр =Таб.Добавить();
       Новстр.Код = Строка(ТабДок.Область(СчСтрок,1).Текст);
       Новстр.Ном = ТабДок.Область(СчСтрок,2).Текст;
       Новстр.Кол = Число(ТабДок.Область(СчСтрок,3).Текст);
   КонецЦикла;
   
   Запрос = Новый Запрос;
.........
   Выб = Запрос.Выполнить().Выгрузить();    
   Первый = истина;
   Отбор = Новый Структура;    
   Для Каждого Стр Из Выб Цикл
       Отбор.Вставить("Код",СокрЛП(Стр.НомКод));
       СтрПоиска = Таб.НайтиСтроки(Отбор);
       Если СтрПоиска.Количество()=0 Тогда
           Сообщить("Не найден код:    "+Стр.НомКод);
           продолжить;
       иначе
           Для каждого СтрНом из СтрПоиска Цикл
               Если СтрНом.Ном <>Стр.Номенклатура.Наименование Тогда
                   Сообщить("Номенклатура не совпадает: "+Стр.Номенклатура);
                   продолжить;
                   
                   Если СтрНом.Кол<>0 И СтрНом.Кол>Стр.КонОст Тогда
                       Колич=СтрНом.Кол-Стр.КонОст;
Док = Документы.ОприходованиеТоваров.СоздатьДокумент();Док.ВидОперации=Перечисления.ВидыОперацийОприходованиеТоваров.ВводНачальныхОстатков;

Перем Док и Колич не объявляется в цикле.Где зарыто подскажите?!
24 bura_limon
 
21.12.10
12:43
где я затупил?
25 y22-k
 
21.12.10
12:47
(23) в запросе наверное
проверял его в консоли?
26 bura_limon
 
21.12.10
12:52
(23)что тут проверять?!
"ВЫБРАТЬ
   |    ТоварыНаСкладахОстатки.Склад,
   |    ТоварыНаСкладахОстатки.Номенклатура,
   |    ТоварыНаСкладахОстатки.Качество,
   |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
   |    ТоварыНаСкладахОстатки.СерияНоменклатуры,
   |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КонОст,
   |    ТоварыНаСкладахОстатки.Номенклатура.Код КАК Коды,
   |    ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдИзм,
   |    ЗначенияСвойствОбъектов.Значение КАК НомКод
   |ИЗ
   |    РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, ) КАК ТоварыНаСкладахОстатки
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
   |        ПО ТоварыНаСкладахОстатки.Номенклатура = ЗначенияСвойствОбъектов.Объект
   |            И (ЗначенияСвойствОбъектов.Свойство = &Свойство)";

отладчиком Цикл проверял,СтрНом.Кол-Стр и Стр.КонОст = ЧИСЛОВЫЕ,
27 bura_limon
 
21.12.10
12:58
Повторюсь: переменную Колич не определена
28 zladenuw
 
21.12.10
12:59
так все таки, что не так выходит у тебя. мы поняли что тебе нужно вычесть количество. что ты хочешь в итоге.... ты так толком не ответил..... если СтрНом.Кол-Стр.КонОст числовые, то должно быть все ок
29 Dmitriy_76
 
21.12.10
13:00
Ну и поставь на строках

Если СтрНом.Кол<>0 И СтрНом.Кол>Стр.КонОст Тогда
Колич=СтрНом.Кол-Стр.КонОст;


точку остановки... посмотри что в них хранится.... как сравнение проходит....и почему не проходит...
30 hhhh
 
21.12.10
13:01
ну может реквизит формы есть "Колич", а может даже реквизит объекта.
31 zladenuw
 
21.12.10
13:01
так может вот это условие не дает зайти в Колич СтрНом.Кол>Стр.КонОст
32 hhhh
 
21.12.10
13:02
(32) тогда должно быть = 0.
33 bura_limon
 
21.12.10
13:06
(32)да в Цикле Колич=СтрНом.Кол-Стр.КонОст,Колич=0,Вот я и справшиваю каким образом получить Результат
34 hhhh
 
21.12.10
13:08
(33) так всё-таки = 0? А чего ты нам тогда мозг паришь, что неопределена?
35 zladenuw
 
21.12.10
13:09
(32) где именно тебе нужно получить результат. скажи вообще что ты делаешь... быстрее поймем что ты от нас хочешь...=)
36 BadTouch
 
21.12.10
13:15
(33) 1. Посмотри отладчиком значения: "СтрНом.Кол" И "Стр.КонОст"
2. Посмотри заходит ли вообще на строчку присвоения
37 bura_limon
 
21.12.10
13:21
(32)что я хочу?!:Колич=СтрНом.Кол-Стр.КонОст,арифмет. выражение получить в перем Колич
38 zladenuw
 
21.12.10
13:23
отладчиком стань тут Если СтрНом.Кол<>0 И СтрНом.Кол>Стр.КонОст Тогда и посмотри, будет ли у тебя выполнятся данное условие.......
39 bura_limon
 
21.12.10
13:25
(33)СтрНом.Кол = 7, Стр.КонОст= 2 ,вывожу отладчиком,и СтрНом.Кол-Стр.КонОст вычесляет,что = 5
40 Dmitriy_76
 
21.12.10
13:27
(39)  Колич то у тебя дальше где используется... или смотришь после выполнения цикла... тогда в последний проход цикла туда наверное и помещается 0....
41 BadTouch
 
21.12.10
13:34
Вставь сообщение, очисти окно и запусти, потом напиши что получилось в окне сообщений

...
Колич=СтрНом.Кол-Стр.КонОст;
Сообщить("Колич = "+Колич);
...
42 Wobland
 
21.12.10
13:36
интересно у вас здесь. этакий текстовый вариант RAdmin'а
43 Dmitriy_76
 
21.12.10
13:56
(42) ++++++++++++++++++++++
Основная теорема систематики: Новые системы плодят новые проблемы.