|
Переход на платформу 8.2. | ☑ | ||
---|---|---|---|---|
0
Ivanych
10.01.12
✎
10:52
|
Здравствуйте. Я новичок в восьмерке. Возникла проблема с переходом 1С. Раньше база велась в версии 8.1. После успешно конвертации в 8.2. Не проводятся некоторые не типовые документы. Я хотел узнать в чем может быть проблема. т.е. это язык программирования или что-то другое? Кто встречал аналогичную проблему, подскажите откуда копать и куда. Спасибо
|
|||
1
YF
10.01.12
✎
10:52
|
(0) Телепаты еще не вышли с каникул
|
|||
2
Cube
10.01.12
✎
10:53
|
Ща прибегут телепаты и помогут...
|
|||
3
Wobland
10.01.12
✎
10:53
|
(1) вышли, но не все ;)
(0) смотри в ОбработкуПроведения() - заходит, не? ну и что там дальше |
|||
4
Azverin
10.01.12
✎
10:54
|
(0) это язык программирования
|
|||
5
DrShad
10.01.12
✎
10:55
|
(0) просто не проводятся? и ничего не говорят?
|
|||
6
Cube
10.01.12
✎
10:55
|
(4) Мухахаха))))
|
|||
7
Ivanych
10.01.12
✎
10:55
|
(5) Например
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Для Каждого СтрокаТЧ из ТЧ Цикл Отказ = ПроверитьПраваПодтверждение(СтрокаТЧ.Заказ); КонецЦикла; Если НЕ Отказ Тогда Для Каждого ТекСтрокаТЧ Из ТЧ Цикл Если ПолучитьСостояниеЗаказа(Дата - 1, ТекСтрокаТЧ.Заказ) <> Перечисления.СостояниеЗаказа.ПредварительныйРасчет Тогда Отказ = Истина; Сообщить("Дата подтверждения заказа " + Строка(ТекСтрокаТЧ.Заказ) + " в производство более даты выпуска продукции."); Возврат; КонецЕсли; // регистр СостояниеЗаказа Движение = Движения.СостояниеЗаказа.Добавить(); Движение.Период = Дата; Движение.Заказ = ТекСтрокаТЧ.Заказ; Движение.Состояние = Перечисления.СостояниеЗаказа.ВПроизводстве; Для Каждого СтрокаТЧРабота Из ТекСтрокаТЧ.Заказ.Работы Цикл Если НЕ обЗначениеНеЗаполнено(СтрокаТЧРабота.Работа) И НЕ обЗначениеНеЗаполнено(СтрокаТЧРабота.Количество) Тогда Движение = Движения.ПланРабот.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Заказ = ТекСтрокаТЧ.Заказ; Движение.Работа = СтрокаТЧРабота.Работа; Движение.Количество = СтрокаТЧРабота.Количество; Движение.Сумма = СтрокаТЧРабота.Сумма; Движение.Сотрудник = СтрокаТЧРабота.Работа.Профессия; КонецЕсли; КонецЦикла; Набор = РегистрыСведений.СоответствиеРаботМатериаловВЗаказе.СоздатьНаборЗаписей(); Набор.Отбор.Заказ.Значение = ТекСтрокаТЧ.Заказ; Набор.Отбор.Заказ.Использование = Истина; Набор.Прочитать(); Для Каждого СтрокаНабора Из Набор Цикл // регистр ИспользуемыеМатериалы Приход Если НЕ обЗначениеНеЗаполнено(СтрокаНабора.Материал) И НЕ обЗначениеНеЗаполнено(СтрокаНабора.Количество) Тогда Движение = Движения.ИспользуемыеМатериалы.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Заказ = СтрокаНабора.Заказ; Движение.Сырье = СтрокаНабора.Материал; Движение.ВидРабот = СтрокаНабора.Работа; Движение.Количество = СтрокаНабора.Количество; //Движение.Сумма = СтрокаНабора.Сумма; КонецЕсли; КонецЦикла; КонецЦикла; Иначе Сообщить("У Вас нет прав на подтверждение."); КонецЕсли; КонецПроцедуры |
|||
8
Explorer1c
10.01.12
✎
10:56
|
(0)Какая ошибка выходит то? И в какой момент? 8.2 у тебя в режиме совместимости?
|
|||
9
vmv
10.01.12
✎
10:56
|
(0) откройте о программе и скопипастите сюда все, что там пишут: разработчик, платформа, версия - все
|
|||
10
Ivanych
10.01.12
✎
10:56
|
(8) Ага
|
|||
11
andrewks
10.01.12
✎
10:57
|
набежали, тролли.
(0) надо вызывать специалиста. ну, или, если ты и есть специалист, то записывайся на курсы |
|||
12
Explorer1c
10.01.12
✎
10:57
|
(10)Спасибо,оч содержательно)
|
|||
13
Ivanych
10.01.12
✎
10:57
|
(9) У Вас нет прав на подтверждение. А если убераю условие просто пишет что документ не проведен
|
|||
14
Ivanych
10.01.12
✎
10:58
|
(8) 1С:Предприятие 8.2 (8.2.15.289)
Бухгалтерия для Казахстана, редакция 1.5, разработка для Казахстана: «1С-Рейтинг», при методической поддержке «1С-Сапа», 2005 (1.5.19.5) |
|||
15
Wobland
10.01.12
✎
10:58
|
если молчит, значит, судя по (7) ТЧ пустая
|
|||
16
Zapal
10.01.12
✎
10:59
|
1986
|
|||
17
Explorer1c
10.01.12
✎
10:59
|
(14)Из какого города? я с Алматы!
|
|||
18
Ivanych
10.01.12
✎
11:00
|
(17)Алматы
|
|||
19
Explorer1c
10.01.12
✎
11:00
|
(18)Пойдем бухать седня ну ее эту ску!
|
|||
20
Cube
10.01.12
✎
11:01
|
(16) А, ну тогда всё понятно!...
|
|||
21
Ivanych
10.01.12
✎
11:01
|
(15) Аналогичная конфигурация на платформе 8.1 без проблем
|
|||
22
Ivanych
10.01.12
✎
11:03
|
(19) :)
|
|||
23
Ivanych
10.01.12
✎
11:04
|
(15) Нет непустая.
|
|||
24
Explorer1c
10.01.12
✎
11:04
|
(22)Заякни мне вечерком побухаем-а по поводу проблемы- проверь
ПроверитьПраваПодтверждение(СтрокаТЧ.Заказ) что выдает в отладчике |
|||
25
Griffin
10.01.12
✎
11:05
|
(23) Проверьте функцию ПроверитьПраваПодтверждение(), почему она переменной Отказ присваивает Истина
|
|||
26
Zapal
10.01.12
✎
11:05
|
одному мне кажется что код
Для Каждого СтрокаТЧ из ТЧ Цикл Отказ = ПроверитьПраваПодтверждение(СтрокаТЧ.Заказ); КонецЦикла; Если НЕ Отказ Тогда отдает дибилизмом? или правда анализировать на Отказ нужно только последнюю строку, я перебор всей тч просто так, для прикола? (21) телепатирую, по-разному отрабатывает функция ПроверитьПраваПодтверждение() скорей всего у пользователя 8.2 не такие же права как были в 8.1 |
|||
27
DrShad
10.01.12
✎
11:08
|
(26) +100500
|
|||
28
Fish
10.01.12
✎
11:08
|
(26) А дальше там есть еще один перебор ТЧ :)))
Если НЕ Отказ Тогда Для Каждого ТекСтрокаТЧ Из ТЧ Цикл |
|||
29
Ivanych
10.01.12
✎
11:09
|
(26) Всё ровно такие же права
А вот функция Функция ПроверитьПраваПодтверждение(Заказ) Экспорт Отказ = Неопределено; Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ПраваПодтвержденияЗаявок.Сотрудник, | ПраваПодтвержденияЗаявок.Правило, | ПраваПодтвержденияЗаявок.ЗначениеПравила, | ПраваПодтвержденияЗаявок.Правило.РеквизитДокументаЗаказ, | ПраваПодтвержденияЗаявок.Правило.ТипЗначенияРеквизита |ИЗ | РегистрСведений.ПраваПодтвержденияЗаявок КАК ПраваПодтвержденияЗаявок |ГДЕ | ПраваПодтвержденияЗаявок.Сотрудник = &Сотрудник"; Запрос.УстановитьПараметр("Сотрудник", ПараметрыСеанса.ТекущийПользователь); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ТипРеквизита = Метаданные.Документы["ЗаказНаИзготовлениеПродукции"].Реквизиты[Выборка.Правило.РеквизитДокументаЗаказ].Тип; Если Найти(Строка(ТипРеквизита), "Число") > 0 Тогда Если Заказ[Выборка.ПравилоРеквизитДокументаЗаказ] >= Выборка.ЗначениеПравила Тогда Отказ = Истина; Иначе Если Отказ = Неопределено Тогда Отказ = Ложь; КонецЕсли; КонецЕсли; ИначеЕсли Найти(Строка(ТипРеквизита), "Справочник") > 0 Тогда Если Заказ[Выборка.ПравилоРеквизитДокументаЗаказ] <> Выборка.ЗначениеПравила Тогда Отказ = Истина; Иначе Если Отказ = Неопределено Тогда Отказ = Ложь; КонецЕсли; КонецЕсли; ИначеЕсли Найти(Строка(ТипРеквизита), "Булево") > 0 Тогда Если Заказ[Выборка.ПравилоРеквизитДокументаЗаказ] <> Выборка.ЗначениеПравила Тогда Отказ = Истина; Иначе Если Отказ = Неопределено Тогда Отказ = Ложь; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Если Отказ = Неопределено Тогда Отказ = Истина; КонецЕсли; Возврат Отказ; КонецФункции |
|||
30
Cube
10.01.12
✎
11:10
|
(29) Запрос в цикле... Расстрелять!
|
|||
31
Ivanych
10.01.12
✎
11:12
|
(30) :). Я этого не писал, пока только учусь. Так как здесь быть?
|
|||
32
Fish
10.01.12
✎
11:13
|
(31) Переписать всё нах :)))
|
|||
33
Ivanych
10.01.12
✎
11:13
|
(28) 7
|
|||
34
Cube
10.01.12
✎
11:15
|
(32) +1)
|
|||
35
Ivanych
10.01.12
✎
11:17
|
(26) Там может быть несколько документов. Все строки проверять необходимо
|
|||
36
DrShad
10.01.12
✎
11:17
|
(32) +1
|
|||
37
Fish
10.01.12
✎
11:19
|
(35) Суть в том, что код в (7) проверяет не ВСЕ строки, а только последнюю :)))
|
|||
38
Ivanych
10.01.12
✎
11:19
|
(32) Это понятно, а временно можно что нибудь сделать в версии 8.1 ведь работает.
|
|||
39
Cube
10.01.12
✎
11:21
|
(37) А до этого стотыщмилёнов запросов прогоняет впустую... Не, ну однозначно расстрелять... Что же это твориться, товарищи! Срамота-то какая.... =))
|
|||
40
Fish
10.01.12
✎
11:22
|
(38) Тут проблема не в версии 1С, а в мозгах того, кто это писал. Переписывать надо в любом случае, даже для 8.1 :)))
|
|||
41
GROOVY
10.01.12
✎
11:24
|
(38) После конвертации на 8.2 (при работе в режиме совместимости с 8.1) поведение конфигурации не меняется.
|
|||
42
Fish
10.01.12
✎
11:25
|
(39) "разработка для Казахстана: «1С-Рейтинг», при методической поддержке «1С-Сапа»" - вот они казахские франчи. Непредсказуемые и беспощадные :)))
|
|||
43
vmv
10.01.12
✎
11:26
|
2005 (1.5.19.5)
писалось видимо пионером платформы, тогда все были пионерами, соббсвенно осуждать грешно. Обновить функционал сначало нужно было, а уже потом думать о 8.2. возможно пионер уже стал корифеем) |
|||
44
Griffin
10.01.12
✎
11:27
|
проверьте строку ТипРеквизита = Метаданные.Документы["ЗаказНаИзготовлениеПродукции"].Реквизиты[Выборка.Правило.РеквизитДокументаЗаказ].Тип;
Если Выборка.Правило.РеквизитДокументаЗаказ является справочником, то Найти(Строка(ТипРеквизита), "Справочник") > 0 не будет выполняться и Отказ будет истина |
|||
45
vmv
10.01.12
✎
11:29
|
(44) там весь код эээ тихий ужас, выше правы - дешевле написать новый, чем проверять
|
|||
46
Griffin
10.01.12
✎
11:31
|
(45) Это понятно, но новичок вряд ли напишет лучше. Пока важнее сделать конфигу работоспособной, переписывать потом.
|
|||
47
Ivanych
10.01.12
✎
11:32
|
(45) Но тем не менее, не понятно почему тогда в 8.1 проводился нормально хоть и конф тихий ужас.
|
|||
48
Griffin
10.01.12
✎
11:36
|
(47) по разному работает Метаданные.Документы["ПоступлениеДопРасходов"].Реквизиты.ДоговорКонтрагента.Тип
Справочник ссылка: Договоры контрагентов - в 8.1 Договоры контрагентов - в 8.2 |
|||
49
Ivanych
10.01.12
✎
11:37
|
(44) ТипРеквизита = Метаданные.Документы["ЗаказНаИзготовлениеПродукции"].Реквизиты[Выборка.Правило.РеквизитДокументаЗаказ].Тип
Выдает нормально, но найти: ИначеЕсли Найти(Строка(ТипРеквизита), "Справочник") > 0 Тогда Если Заказ[Выборка.ПравилоРеквизитДокументаЗаказ] <> Выборка.ЗначениеПравила Тогда Отказ = Истина; Иначе Если Отказ = Неопределено Тогда Отказ = Ложь; КонецЕсли; КонецЕсли; Не может |
|||
50
Ivanych
10.01.12
✎
11:39
|
(44) Это справочник организации заданный в РегистрСведений.ПраваПодтвержденияЗаявок
|
|||
51
Griffin
10.01.12
✎
11:40
|
(50) см. (48)
|
|||
52
Ivanych
10.01.12
✎
11:44
|
(51) На примере можно. Не догоняю Справочник ссылка:
|
|||
53
Ivanych
10.01.12
✎
11:45
|
(51) Метаданные.Документы["ПоступлениеДопРасходов"].ДоговорКонтрагента.Тип ?
|
|||
54
Griffin
10.01.12
✎
11:47
|
(52) смотрим Найти(Строка(ТипРеквизита), "Справочник") > 0. Так как в 8.2 Строка(ТипРеквизита) больше не содержит строку "Справочник ссылка", эта функция Найти никогда не найдет "Справочник".
|
|||
55
BigWetTits
10.01.12
✎
11:47
|
Может на данной 8.1. совершенно случайно так сложилось, что цикл проходит и в итоге у отказа нужное значение.
ТС, исправь те косяки, что тут тебе сказали, это довольно простой код, может заработает? |
|||
56
Ivanych
10.01.12
✎
11:49
|
(54) Спасибо всем.
|
|||
57
Griffin
10.01.12
✎
11:50
|
(54) Для экстренного случая можно тупо Найти(Строка(ТипРеквизита), "Справочник") > 0 изменить на Найти(Строка(ТипРеквизита), "Организация") > 0 , "Организация" или как там в вашей конфиге называется справочник, но не проверять на содержание в строке "Справочник"
|
|||
58
Мимохожий Однако
10.01.12
✎
11:54
|
(7)Например,
.. Процедура ОбработкаПроведения(Отказ, РежимПроведения) Для Каждого СтрокаТЧ из ТЧ Цикл Отказ = ПроверитьПраваПодтверждение(СтрокаТЧ.Заказ); Если ОТКАЗ = Истина Тогда Прервать; //дальше проверять не обязательно. КонецЕсли; КонецЦикла; |
|||
59
Я не курил
10.01.12
✎
11:57
|
(58) "= Истина" лишнее
|
|||
60
BigWetTits
10.01.12
✎
11:58
|
А движения Записать() не надо?
|
|||
61
Мимохожий Однако
10.01.12
✎
12:15
|
(59) согласен ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |