Имя: Пароль:
1C
1С v8
Помогите переделать код
, , ,
0 Lecowi
 
14.05.19
11:36
Не дает удалять созданный комплект, и постоянно пишет полное совпадение.

Процедура ПередЗаписью(Отказ)
    ПроверкаЗаписи=Проверка();    
    Если ПроверкаЗаписи=1 тогда
        Отказ = Истина;
        Сообщить("Нельзя сформировать комплект нельзя");
    КонецЕсли;
КонецПроцедуры

Функция Проверка()
    Выборка = Справочники.Партии.Выбрать();
    Пока Выборка.Следующий() цикл
        Флаг=0;
        Флаг1=0;
        Для каждого стр из Выборка.ЭлементыПартии цикл
            флаг1=флаг1+1;
            колстрокВТЧ=0;
            Для каждого ТекующаяСТРТЧ из ЭтотОбъект.ЭлементыПартии цикл
                колстрокВТЧ=колстрокВТЧ+1;
                Если СокрЛП(стр.Номенклатура) = СокрЛП(ТекующаяСТРТЧ.Номенклатура) тогда
                    флаг=флаг+1;
                    Если стр.Количество = ТекующаяСТРТЧ.Количество тогда
                        флаг = флаг + 1;
                    Иначе
                        флаг= флаг-1;
                    КонецЕсли;
                Иначе
                    флаг= флаг-1;
                КонецЕсли;
                Если флаг1=флаг и  флаг1=колстрокВТЧ тогда
                    Сообщить("Полное совпадение комплектов "+Выборка.Ссылка);
                    Возврат 1;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
КонецФункции;
1 1Сергей
 
14.05.19
11:42
Для начала дайте переменным флаг и флаг1 более осмысленные названия
2 Cyberhawk
 
14.05.19
11:46
Сколько платят?
3 zvial
 
14.05.19
11:46
Философский код...
Сообщить("Нельзя сформировать комплект нельзя");

А вообще, почему не сделать это запросом?
4 1Сергей
 
14.05.19
11:58
(3) ты стелепатил что ему нужно?
5 catena
 
14.05.19
12:04
(4)Запрет сохранения при полном совпадении с уже существующим элементом)) Очевидно же))
6 spiller26
 
14.05.19
12:04
(0) Кто так пишет функции?
7 hhhh
 
14.05.19
12:07
(3) Текующая это тоже слово с двойным смыслом.
8 1Сергей
 
14.05.19
12:09
(5) там про удаление написано
9 catena
 
14.05.19
12:11
(8)При разговоре с девушкой нужно читать между строк.
10 1Сергей
 
14.05.19
12:13
(9) чорд. думал это парень
11 1Сергей
 
14.05.19
12:18
(3) >>Сообщить("Нельзя сформировать комплект нельзя");

Интересно, что куда во фразу ни вставь запятую, смысл не меняется
12 Lecowi
 
14.05.19
12:24
Будет что-нибудь адекватное?
13 1Сергей
 
14.05.19
12:25
(12) не даёт удалять или не даёт создавать?
14 Lecowi
 
14.05.19
12:28
не дает удалять
15 hhhh
 
14.05.19
12:30
(12) ну может там действительно есть полное совпадение. Вы ведь проверяете весь справочник партии, там может миллионы партий. Хотя бы одна да совпадет.
16 Lecowi
 
14.05.19
12:31
Так я и создала специально справочник, в котором будет полное совпадение
17 sqr4
 
14.05.19
12:32
Ну наверное сначало надо фото.
А затем исключить операцию удаления из проверки?
18 hhhh
 
14.05.19
12:35
(16) ну вот, оно и происходит. Оно и должно писать "Полное совпадение комплектов", у вас и пишет.
19 1Сергей
 
14.05.19
12:35
На самом деле надо исключить сравнение с самим собой
20 Lecowi
 
14.05.19
12:38
Я не знаю как сделать исключение
21 1Сергей
 
14.05.19
12:39
Если Выборка.Ссылка = ЭтотОбъект.Ссылка Тогда
    Продолжить;
КонецЕсли;
22 1Сергей
 
14.05.19
12:40
Если у тебя ЭтотОбъект партия, конечно
23 sqr4
 
14.05.19
12:41
(20) начни с фото)
24 Вася Теркин
 
14.05.19
12:42
(11) Тебе же сказали - логика женская. а ты опять. Тупой упертый мужик.
25 Ёпрст
 
14.05.19
12:56
(0) Нужно при записи элемента справочника Партии проверить, что уже есть элемент справочника партия с таким же составом в табличной части ЭлементыПартии, так ?
26 hhhh
 
14.05.19
12:58
(24) ТС вообще мужик. Написано - пол мужской.
27 1Сергей
 
14.05.19
12:59
(26) Читай между строк :)