|
Подскажите с переменными | ☑ | ||
---|---|---|---|---|
0
Garikus
23.06.14
✎
08:53
|
ИтогМасса = Груз;
Если (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж0520П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П0520П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П0520К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж0520К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ0520К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П0520Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж0520Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ0520Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ0520П") Тогда Мест = ЭлементыФормы.Товары.ТекущиеДанные.Количество; Масса = Мест * 17/1000; КонецЕсли; Если (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж156П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П156П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ156П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж156К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П156К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ156К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж156Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П156Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ156Щ") Тогда Мест = ЭлементыФормы.Товары.ТекущиеДанные.Количество/0.9; Масса = Мест * 9/1000; КонецЕсли; Если (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж0512П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П0512П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ0512П") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж0512К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П0512К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ0512К") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Ж0512Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "П0512Щ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "Щ0512Щ") Тогда Мест = ЭлементыФормы.Товары.ТекущиеДанные.Количество/0.6; Масса = Мест * 6/1000; КонецЕсли; Если (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ЖР") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ПРП") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ЩРП") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ЖРК") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ПРК") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ЩРК") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ЖРЩ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ПРЩ") или (ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул = "ЩР") Тогда Мест = ЭлементыФормы.Товары.ТекущиеДанные.Количество/5; Масса = Мест * 63/1000; КонецЕсли; ИтогМасса = ИтогМасса + Масса; // Вставить обработку выборки ВыборкаДетальныеЗаписи Тон =ЭлементыФормы.Водитель.Значение.Тоннаж; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА Если ИтогМасса > Тон Тогда Предупреждение("Вес в накладной превышает грузоподъемность автомобиля", 5, "Неправильный вес"); КонецЕсли; ЭлементыФормы.Груз.Значение = ИтогМасса; Есть такой код, выполняется при изменении количества в табличном документе. Но ИтогМасса = ИтогМасса + Масса; выдает ошибку что не числовая переменная. Если ИтогМасса =0; в начале прописать то работает, но соответственно начинает не правильно считать. Как быть? Нужно чтобы при изменении количества считался общий вес, наведите на умную мыслю) |
|||
1
butterbean
23.06.14
✎
08:55
|
значит Груз не число
|
|||
2
Garikus
23.06.14
✎
08:56
|
(1) Груз имеет реквизит число, мб попробывать ИтогМасса = Число(Груз);
|
|||
3
Godofsin
23.06.14
✎
08:57
|
Для начала разобраться какого типа "Груз"
|
|||
4
kosts
23.06.14
✎
08:57
|
(0) Может быть на форме есть такие реквизиты с не числовым типом.
|
|||
5
Enterprise
23.06.14
✎
08:57
|
(2) Проверь "Груз"
|
|||
6
Necessitudo
23.06.14
✎
09:00
|
(0) Господи, какой гамнокод. Нахрена писать по тыще раз ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул? Вот написал такое - теперь сам разбирайся.
|
|||
7
kosts
23.06.14
✎
09:00
|
Еще нет уверенности, что Масса обязательно будет заполнено. Возможно не сработало ни одно условие
|
|||
8
Garikus
23.06.14
✎
09:02
|
А запросом как то можно с текущего не записанного документа получить данные?
|
|||
9
Ненавижу 1С
гуру
23.06.14
✎
09:09
|
код красив и изящен я считаю
|
|||
10
Godofsin
23.06.14
✎
09:10
|
(8) Ну во врем. таблицу запихай
|
|||
11
butterbean
23.06.14
✎
09:12
|
(9) дада, в 100500 вызовах ЭлементыФормы.Товары.ТекущиеДанные.Номенклатура.Артикул и строках типа "ПРЩ" и "ЖРЩ" есть какой-то шарм
|
|||
12
Enterprise
23.06.14
✎
09:13
|
(9) тонко
|
|||
13
kosts
23.06.14
✎
09:14
|
Первое приближение
|
|||
14
kosts
23.06.14
✎
09:20
|
Тут сурьезная ошибка, изменение исходных данных, если расчет будет несколько раз, то в грузе будут очень правильные данные. Нужно добавить еще один реквизит.
|
|||
15
butterbean
23.06.14
✎
09:22
|
(14) шо за бред??
|
|||
16
Ненавижу 1С
гуру
23.06.14
✎
09:27
|
никому не кажется, что все эти коэффициенты надо хранить в БД?
|
|||
17
kosts
23.06.14
✎
09:28
|
(15) Если кажется, что в вашем коде нет ошибки, это не значит, что её там нету.
|
|||
18
Garikus
23.06.14
✎
09:30
|
ИтогМасса = 0;
Масса = 0; Для Каждого Стр из Товары цикл Если (Стр.Номенклатура.Артикул = "Ж0520П") или (Стр.Номенклатура.Артикул = "П0520П") или (Стр.Номенклатура.Артикул = "П0520К") или (Стр.Номенклатура.Артикул = "Ж0520К") или (Стр.Номенклатура.Артикул = "Щ0520К") или (Стр.Номенклатура.Артикул = "П0520Щ") или (Стр.Номенклатура.Артикул = "Ж0520Щ") или (Стр.Номенклатура.Артикул = "Щ0520Щ") или (Стр.Номенклатура.Артикул = "Щ0520П") Тогда Мест = Стр.Количество; Масса = Мест * 17/1000; КонецЕсли; Если (Стр.Номенклатура.Артикул = "Ж156П") или (Стр.Номенклатура.Артикул = "П156П") или (Стр.Номенклатура.Артикул = "Щ156П") или (Стр.Номенклатура.Артикул = "Ж156К") или (Стр.Номенклатура.Артикул = "П156К") или (Стр.Номенклатура.Артикул = "Щ156К") или (Стр.Номенклатура.Артикул = "Ж156Щ") или (Стр.Номенклатура.Артикул = "П156Щ") или (Стр.Номенклатура.Артикул = "Щ156Щ") Тогда Мест = Стр.Количество/0.9; Масса = Мест * 9/1000; КонецЕсли; Если (Стр.Номенклатура.Артикул = "Ж0512П") или (Стр.Номенклатура.Артикул = "П0512П") или (Стр.Номенклатура.Артикул = "Щ0512П") или (Стр.Номенклатура.Артикул = "Ж0512К") или (Стр.Номенклатура.Артикул = "П0512К") или (Стр.Номенклатура.Артикул = "Щ0512К") или (Стр.Номенклатура.Артикул = "Ж0512Щ") или (Стр.Номенклатура.Артикул = "П0512Щ") или (Стр.Номенклатура.Артикул = "Щ0512Щ") Тогда Мест = Стр.Количество/0.6; Масса = Мест * 6/1000; КонецЕсли; Если (Стр.Номенклатура.Артикул = "ЖР") или (Стр.Номенклатура.Артикул = "ПРП") или (Стр.Номенклатура.Артикул = "ЩРП") или (Стр.Номенклатура.Артикул = "ЖРК") или (Стр.Номенклатура.Артикул = "ПРК") или (Стр.Номенклатура.Артикул = "ЩРК") или (Стр.Номенклатура.Артикул = "ЖРЩ") или (Стр.Номенклатура.Артикул = "ПРЩ") или (Стр.Номенклатура.Артикул = "ЩР") Тогда Мест = Стр.Количество/5; Масса = Мест * 63/1000; КонецЕсли; ИтогМасса = ИтогМасса + Масса; ВыборкаДетальныеЗаписи Тон =Водитель.тоннаж; КонецЦикла; Если ИтогМасса > Тон Тогда Сообщить("Вес в накладной превышает грузоподъемность автомобиля"); КонецЕсли; ЭлементыФормы.Груз.Значение = ИтогМасса; Вставил следующий код в процедуру обновления подвала и все хорошо работает) Всем спасибо |
|||
19
kosts
23.06.14
✎
09:37
|
(18) Скажи какую автотранспортную компанию автоматизируешь, не хочу воспользоваться её услугами. Мало ли ...
|
|||
20
Garikus
23.06.14
✎
09:44
|
(19) Это не автотранспортная компания) так что можешь быть спокоен)
|
|||
21
StaticUnsafe
23.06.14
✎
09:56
|
(0) Артикул = "Ж0520П"
серьёзно? |
|||
22
samozvanec
23.06.14
✎
10:06
|
(0) у вас что, 36 артикулов? всегда было и всегда будет?
|
|||
23
Garikus
23.06.14
✎
12:02
|
(22) Артикул это сокращение номенклатурного названия, введен для того что на данны момент работает 15 баз, и во всех доработки одни и теже. Вот и пришлось сокращать и вводить артикулы во всех базах, а сокращение такое чтобы не мудорствовать, как бы просто и понятно.
|
|||
24
samozvanec
23.06.14
✎
12:08
|
(23) а не проще какое-нибудь перечисление запилить, или справочник? я так понял, вариантов обработки всего 4?
|
|||
25
Segate
23.06.14
✎
12:15
|
(22) заведи справочник реквизитом коэфициент и тч список артикулов. и не пиши гунокод. Или регистр, или что угодно, где ты будешь хранить эти данные
|
|||
26
mxs089
23.06.14
✎
12:21
|
создай свойство, впиши туда коэф. массы
|
|||
27
samozvanec
23.06.14
✎
12:34
|
(25) не заведу. не пишу. не буду)
|
|||
28
Garikus
23.06.14
✎
13:07
|
Я просто разово занимаюсь доработками как умею, я вообще сисадмином работаю и урывками когда приспичит приходится в 1С воять
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |