|
v7: Оператор "Или" так работает, а так нет, где что не так, чудеса в решете? | ☑ | ||
---|---|---|---|---|
0
Kigo_Kigo
09.07.18
✎
14:28
|
Если (КодОперации <> "11") Тогда
//ИЛИ (КодОперации <> "56") Тогда Продолжить; КонецЕсли; Так работает Если (КодОперации <> "11") ИЛИ (КодОперации <> "56") Тогда Продолжить; КонецЕсли; Так нет, не на Строка "11", не на строка "56" все равно вываливает в продолжить, я туплю ? |
|||
1
Вафель
09.07.18
✎
14:29
|
второе условие всегда истина
|
|||
2
Смотрящий
09.07.18
✎
14:30
|
КодОперации - строка ?
|
|||
3
Kigo_Kigo
09.07.18
✎
14:31
|
(2) Да
Поз = Найти(СтрокаИзФайла,";"); КодОперации = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); |
|||
4
exwill
09.07.18
✎
14:31
|
(0) Ты = косо нарисовал.
|
|||
5
Duke1C
09.07.18
✎
14:33
|
(0) Естественно отработает:) "11"<>"56", а "56"<>"11"
|
|||
6
uno-group
09.07.18
✎
14:33
|
Все правильно работает. Код операции по любому не равен или 1 или 2 условию.
|
|||
7
uno-group
09.07.18
✎
14:34
|
если (КодОперации=11)или(кодоперации=56) тогда
Иначе Продолжить; КонецЕСли |
|||
8
uno-group
09.07.18
✎
14:35
|
или вместо "или" используй "И"
|
|||
9
Duke1C
09.07.18
✎
14:35
|
(5) Просто там надо И вместо ИЛИ
|
|||
10
Ненавижу 1С
гуру
09.07.18
✎
14:35
|
(КодОперации <> "11") ИЛИ (КодОперации <> "56")
равносильно выражению: (НЕ КодОперации="11") ИЛИ (НЕ КодОперации="56") равносильно выражению: НЕ(КодОперации="11" И КодОперации="56") выражение в скобках у последнего всегда ложно его отрицание всегда истинно |
|||
11
Kigo_Kigo
09.07.18
✎
14:39
|
(7) Виснет в бесконечном цикле
|
|||
12
Cthulhu
09.07.18
✎
14:41
|
чудеса - в голове.
как написано - так и работает. (11): только если нет перебора выборки (изменения контекста проверки условия) в условии цикла и нарвался на первый не 11 и не 56. |
|||
13
Kigo_Kigo
09.07.18
✎
14:41
|
(9) ТОже виснет в бесконечном цикле
|
|||
14
Масянька
09.07.18
✎
14:43
|
(11) У нас мат. логику вела Виноградова... Такая с..а...
До сих пор ненавижу... Дизъюнкция (твое ИЛИ) - https://ru.wikipedia.org/wiki/Дизъюнкция (справа картинка). |
|||
15
Kigo_Kigo
09.07.18
✎
14:43
|
(12) нет, есть файл выгрузки продаж, его 1 раз перебираю, смысла перевыборки нет, ничего в нем не модифицирую
|
|||
16
Fish
09.07.18
✎
14:45
|
(0) Никаких чудес, всё верно отрабатывает. Ты написал условие, которое всегда будет равно истине.
|
|||
17
uno-group
09.07.18
✎
14:47
|
весь текс в студию
|
|||
18
Масянька
09.07.18
✎
14:49
|
+ (16) Операция не может быть равна и 11, и 56 - абсолютно верно.
Попробовать надо "равно": то есть если равно 11 или 56 - исключение. Хотя - фиг его знает, чего там у тебя... |
|||
19
Вафель
09.07.18
✎
14:49
|
Это русский язык с нами злую шутку играет.
особенно на этом часто попадаются менеджеры |
|||
20
Fish
09.07.18
✎
14:51
|
(19) А причём тут русский язык? Элементарная булева логика.
|
|||
21
FIXXXL
09.07.18
✎
14:52
|
как вариант: делаешь массив исключений и пишешь
Если МассивИ.Найти(ТекЗначение)=Неопределено Тогда или как там синтаксис в 7.7 …. |
|||
22
Lama12
09.07.18
✎
15:00
|
(0) Я так понимаю ожидаемый результат должен быть как от следующей функции
НЕ ((КодОперации = "11") ИЛИ (КодОперации = "56")) |
|||
23
Salimbek
09.07.18
✎
15:02
|
(21) Там совсем по-другому )))
(13) Когда виснет в бесконечном цикле, то ставь внутри точку брейкпойнта, потом включай замер, запускай свой код, потом, через некоторое время ставь брейкпойнт обратно. Как код остановится, смотри замер и по каким веткам цикл ходит, и почему он не останавливается. А то вдруг ты там счетчик все время в начало сбрасываешь, вот оно и не завершается никогда. |
|||
24
Cthulhu
09.07.18
✎
15:03
|
(15): не "нет" а "да". неплохо бы внимательнее читать на что отвечаешь (к тому же возражая).
если ты "файл выгрузки продаж, его 1 раз перебираешь" - и оператор перебора не в операторе условия цикла, а после вложенного в цикл оператора проверки условия - то на первом же "Продолжить" у тебя этот оператор "перебора" прекрасно обходится, ничего ты не перебираешь а получаешь бесконечный цикл. "перевыборки"и "не модифицирую" тут ни при чем совершенно. и - см.первый абзац (12) еще раз |
|||
25
Duke1C
09.07.18
✎
15:06
|
(13) И так:
Если (КодОперации <> "11") И (КодОперации <> "56") Тогда Продолжить; КонецЕсли; И так: Если (КодОперации="11") ИЛИ (КодОперации="56") Тогда Иначе Продолжить; КонецЕсли; Должно работать |
|||
26
Kigo_Kigo
09.07.18
✎
15:08
|
(22) Виснет в бесконечном цикле
(25) тоже виснет в бесконечном цикле |
|||
27
Kigo_Kigo
09.07.18
✎
15:09
|
код полностью
Функция СформироватьМПАЙ(ТаблРеквизитов, ОписаниеРезультата, Сообщение = "") Рез = 1; СпрЕдиницы = СоздатьОбъект("Справочник.Единицы"); СпрТовары = СоздатьОбъект("Справочник.Номенклатура"); ТаблРеквизитов = СоздатьОбъект("ТаблицаЗначений"); ТаблРеквизитов.НоваяКолонка("Товар"); ТаблРеквизитов.НоваяКолонка("Количество"); ТаблРеквизитов.НоваяКолонка("Единица"); ТаблРеквизитов.НоваяКолонка("Цена"); ТаблРеквизитов.НоваяКолонка("Сумма"); ТаблРеквизитов.НоваяКолонка("ВидОплаты","Перечисление.ВидыОплаты"); ТаблРеквизитов.НоваяКолонка("Скидка","Справочник.Скидки"); Для А = 4 по ФайлЗагрузки.КоличествоСтрок() Цикл Состояние("Загрузили :" + А + " Строк"); СтрокаИзФайла = ФайлЗагрузки.ПолучитьСтроку(А); СтрокаИзФайла = СокрЛП(СтрокаИзФайла); //СтрокаИзФайла = СтрЗаменить(СтрокаИзФайла,",","."); Если ПустаяСтрока(СокрЛП(СтрокаИзФайла)) = 1 Тогда Продолжить; КонецЕсли; Поз = 0; Поз = Найти(СтрокаИзФайла,";"); НомерСтрокиОперации = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); ДатаОперации = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Если Дата(ДатаОперации) <> ВыбДата Тогда Продолжить; КонецЕсли; Поз = Найти(СтрокаИзФайла,";"); ВремяОперации = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); КодОперации = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); // 11 продажа,100 - открытие смены,55 фиксация продажи,56 отмена //ПродолжитьЦикл = 0; //Если (КодОперации <> "56") Тогда // // Если (КодОперации <> "11") тогда// и (КодОперации <> "56") Тогда // ПродолжитьЦикл = 1; // //Продолжить; // КонецЕсли; //КонецЕсли; //Если (КодОперации <> "11") тогда// и (КодОперации <> "56") Тогда // // Если (КодОперации <> "56") Тогда // ПродолжитьЦикл = 1; // // КонецЕсли; //КонецЕсли; //Если ПродолжитьЦикл = 1 Тогда // Продолжить; //КонецЕсли; Если НЕ ((КодОперации = "11") ИЛИ (КодОперации = "56")) Тогда Продолжить; КонецЕсли; Поз = Найти(СтрокаИзФайла,";"); КакаятоЕдиница = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); НомерЧека = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); ПарольКассира = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); КодТовара = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); ЧтотоНепонятно = Лев(СтрокаИзФайла,Поз - 1); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); з_Цена = Число(Лев(СтрокаИзФайла,Поз - 1)); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); з_Количество = Число(Лев(СтрокаИзФайла,Поз - 1)); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Поз = Найти(СтрокаИзФайла,";"); з_Сумма = Число(Лев(СтрокаИзФайла,Поз - 1)); СтрокаИзФайла = Сред(СтрокаИзФайла,Поз+1); Поз = Найти(СтрокаИзФайла,";"); Если КодОперации = "11" Тогда СчетчикЦикла = 0; Код=КодТовара; Для СчетчикЦикла = СтрДлина(Код) по Метаданные.Справочник("Номенклатура").ДлинаКода-1 Цикл Код="0"+Код; КонецЦикла; Если СпрТовары.НайтиПоКоду(Код, 0) = 0 Тогда Сообщить("Товар со кодом " + Код + " не найден!"); Иначе ТаблРеквизитов.НоваяСтрока(); ТаблРеквизитов.Товар = СпрТовары.ТекущийЭлемент(); ТаблРеквизитов.Единица = СпрТовары.БазоваяЕдиница; ТаблРеквизитов.Количество = з_Количество; ТаблРеквизитов.Сумма = з_Сумма; // ТаблРеквизитов.Цена = ДанныеИзККМ.Цена; ТаблРеквизитов.Цена = ?(з_Количество<=1,з_Сумма,з_Сумма/з_Количество); КонецЕсли; Иначе //здесь надо отменить продажу и определить сколько строк сторнировали Если з_Сумма < 0 Тогда ТаблРеквизитов.ПолучитьСтрокуПоНомеру(ТаблРеквизитов.КоличествоСтрок()); з_Сумма = з_Сумма * (-1); Если з_Сумма = ТаблРеквизитов.Сумма Тогда ТаблРеквизитов.УдалитьСтроку(); Иначе Для А=1 По 50 Цикл ТаблРеквизитов.ПолучитьСтрокуПоНомеру(ТаблРеквизитов.КоличествоСтрок()); Если з_Сумма <> ТаблРеквизитов.Сумма Тогда з_Сумма = з_Сумма - ТаблРеквизитов.Сумма; ТаблРеквизитов.УдалитьСтроку(); ИначеЕсли з_Сумма = ТаблРеквизитов.Сумма Тогда ТаблРеквизитов.УдалитьСтроку(); Прервать; КонецЕсли; Если з_Сумма <= 0 Тогда //?(з_Сумма < 0,Сообщить("что то пошло не так в строке " + Строка(ТаблРеквизитов.КоличествоСтрок())); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Если ТаблРеквизитов.КоличествоСтрок() = 0 Тогда ОписаниеРезультата = "За кассовую смену не продано ни одного товара с выбранного склада."; Рез = 0; Иначе Рез = 1; КонецЕсли; Возврат Рез; КонецФункции |
|||
28
Cthulhu
09.07.18
✎
15:10
|
(26): что просил - то и получаешь.
(хинт: между "Иначе" и "Продолжить" должен быть код выборки следующей порции данных из файла))) |
|||
29
Kigo_Kigo
09.07.18
✎
15:10
|
Файл выгрузки
# 1 1 913;14.06.18;09:29:11;11;1;253;30;5849;1;147.00;1.000;147.00; 914;14.06.18;09:29:11;175;1;253;30;3;0;0.00;3.000;0.00; 915;14.06.18;09:29:11;11;1;253;30;4511;1;172.00;1.000;172.00; 916;14.06.18;09:29:11;175;1;253;30;3;0;0.00;3.000;0.00; 917;14.06.18;09:29:11;56;1;253;30;;0;35.00;1.000;-319.00; 918;14.06.18;09:29:36;11;1;253;30;5849;1;147.00;1.000;147.00; 919;14.06.18;09:29:36;175;1;253;30;3;0;147.00;3.000;0.00; 920;14.06.18;09:29:36;40;1;253;30;;0;0.00;1.000;147.00; 921;14.06.18;09:29:36;55;1;253;30;;0;35.00;8.000;147.00; 5770;07.07.18;10:19:52;100;1;1258;30;54;1;0.00;1.000;0.00; 5771;07.07.18;10:19:57;11;1;1259;30;2037;1;115.00;2.000;230.00; 5772;07.07.18;10:19:57;175;1;1259;30;3;0;230.00;3.000;0.00; 5773;07.07.18;10:19:57;40;1;1259;30;;0;0.00;1.000;230.00; 5774;07.07.18;10:19:57;55;1;1259;30;;0;54.00;8.000;230.00; 5775;07.07.18;13:27:13;11;1;1260;30;2664;1;109.00;1.000;109.00; 5776;07.07.18;13:27:13;175;1;1260;30;3;0;109.00;3.000;0.00; 5777;07.07.18;13:27:13;40;1;1260;30;;0;0.00;1.000;109.00; 5778;07.07.18;13:27:13;55;1;1260;30;;0;54.00;8.000;109.00; 5779;07.07.18;13:27:20;11;1;1261;30;5996;2;106.00;1.000;106.00; 5780;07.07.18;13:27:20;175;1;1261;30;3;0;106.00;3.000;0.00; 5781;07.07.18;13:27:20;40;1;1261;30;;0;0.00;1.000;106.00; 5782;07.07.18;13:27:20;55;1;1261;30;;0;54.00;4.000;106.00; 5783;07.07.18;13:28:12;11;1;1262;30;1584;1;19.00;2.000;38.00; 5784;07.07.18;13:28:12;175;1;1262;30;3;0;38.00;3.000;0.00; |
|||
30
Kigo_Kigo
09.07.18
✎
15:12
|
(28) Что я просил?
Я просил если код не равен 11 ИЛИ код не равен 56 , тогда перейти на следующую строку выборки, не так? не логично?, что вы мне тут пытаетесь доказать? |
|||
31
Kigo_Kigo
09.07.18
✎
15:14
|
я 19 лет занимаюсь программированием и являюсь серт спецом, все всегда работало как надо, а тут бред какой то
|
|||
32
Morkhe
09.07.18
✎
15:16
|
(27) В основном цикле и во вложенном одна и та же переменная-итератор используется
|
|||
33
Morkhe
09.07.18
✎
15:17
|
(31) Никогда такого не было, и вот опять :)
|
|||
34
Ненавижу 1С
гуру
09.07.18
✎
15:18
|
(31) жалуешься или хвастаешься?
|
|||
35
Cthulhu
09.07.18
✎
15:19
|
(30): 1) просили просто тупо перейти на следующую строку - т.к. сформулированное Вами "условие" ВСЕГДА ИСТИННО ВНЕ ЗАВИСИМОСТИ ОТ ЗНАЧЕНИЯ КОДА.
2) крайне нелогично. |
|||
36
Cthulhu
09.07.18
✎
15:19
|
(34): судя по ходу обсуждения.... хм....
|
|||
37
Kigo_Kigo
09.07.18
✎
15:19
|
(35) Напишите как логично? или так и будем воздух сотрясать?
|
|||
38
Флориан
09.07.18
✎
15:29
|
(30) а так:
Если (КодОперации <> "11") Тогда Продолжить; КонецЕсли; Если (КодОперации <> "56") Тогда Продолжить; КонецЕсли; |
|||
39
Kigo_Kigo
09.07.18
✎
15:31
|
(38) Так работать не буде, когда код операции будет = 11 цикл вылетит на 56 и наоборот
|
|||
40
Cthulhu
09.07.18
✎
15:33
|
(37): заплатите тогда по ценнику.
ВНИМАНИЕ, ОШИБКА! Вы во внутреннем цикле (Для А=1 По 50 Цикл) - УБИВАЕТЕ (НЕКОРРЕКТНО ИЗМЕНЯЕТЕ) ПЕРЕМЕННУЮ ВНЕШНЕГО ЦИКЛА (Для А = 4 по ФайлЗагрузки.КоличествоСтрок() Цикл) в результате ЭТОГО (а не вашего оператора проверки) получаете БЕСКОНЕЧНЫЙ ЦИКЛ. ======= и ЭТО - В ДОПОЛНЕНИЕ к тому, что ВАШЕ УСЛОВИЕ НАПИСАНО НЕКОРРЕКТНО И ВСЕГДА БУДЕТ ИСТИННО (и будет улетать на "продолжить") ------- блин, 19 лет программирования и (оооо!!!!) сер.ти.фи.кат! мамуегоналево |
|||
41
НеБорис Нуралиев
09.07.18
✎
15:33
|
(32) + 1
|
|||
42
uno-group
09.07.18
✎
15:33
|
Сп=СоздатьОбъект("СписокЗначений");
ТекСтрока=СтрЗаменить(ТекСтрока,";",""","""); Сп.ИзСтрокиСРазделителями(ТекСтрока); И потом юзать Сп.ПолучитьЗначение(1); с и т.д. Вместо постояного поиска и обрезания за 19 лет так и не научился. |
|||
43
uno-group
09.07.18
✎
15:34
|
Условие Если КодОперации = "11" Тогда
СчетчикЦикла = 0; Код=КодТовара; Для СчетчикЦикла = СтрДлина(Код) по Метаданные.Справочник("Номенклатура").ДлинаКода-1 Цикл Код="0"+Код; КонецЦикла; Если СпрТовары.НайтиПоКоду(Код, 0) = 0 Тогда Сообщить("Товар со кодом " + Код + " не найден!"); Иначе ТаблРеквизитов.НоваяСтрока(); ТаблРеквизитов.Товар = СпрТовары.ТекущийЭлемент(); ТаблРеквизитов.Единица = СпрТовары.БазоваяЕдиница; ТаблРеквизитов.Количество = з_Количество; ТаблРеквизитов.Сумма = з_Сумма; // ТаблРеквизитов.Цена = ДанныеИзККМ.Цена; ТаблРеквизитов.Цена = ?(з_Количество<=1,з_Сумма,з_Сумма/з_Количество); КонецЕсли; никогда не выполниться так как ты его обрезал по услдовию в сабже |
|||
44
Salimbek
09.07.18
✎
15:34
|
(40) +1
|
|||
45
Kigo_Kigo
09.07.18
✎
15:42
|
(40)
(32) Спасибо, я понял свою ошибку |
|||
46
Cthulhu
09.07.18
✎
15:43
|
прим.: а вообще... пытаться возврат - если он не копейка-в-копейку относится к последней продаже (в последней строке таблицы продаж)... тупо рассовывать на первые попавшиеся (с 1-й строки таблицы продаж по 50-ю) - причем рассовывать даже не проверяя на непревышение суммы отменяемой продажи ("Если з_Сумма <> ТаблРеквизитов.Сумма Тогда" вместо более логичного "Если з_Сумма >= ТаблРеквизитов.Сумма Тогда")... это очень сертифицировано ящитаю...
|
|||
47
Kigo_Kigo
09.07.18
✎
15:44
|
(46) Все работает как надо
|
|||
48
Kigo_Kigo
09.07.18
✎
15:48
|
+ там сумма, либо равна(отменили одну позицию) либо нет, отменили чек с несколькими позициями, признаков отмены не передаеться, только можем судить по отрицательном итоге чека, а в машинке все четко, и никаких но там быть не может
|
|||
49
Масянька
09.07.18
✎
15:50
|
(31) " а тут бред какой то" - всё, что касается дебильнутых касс (я не могу назвать по-другому!) - БРЕД...
|
|||
50
Cthulhu
09.07.18
✎
15:50
|
(47): извините, но вы, похоже, просто не знаете "как надо".
элементарная логика подсказывает, что более правильным будет проверять код проданного товара для отмены (если он указан в отмене) - или (если код товара для отмены не указан) не от 1-й по 50-ю строку продаж, а наоборот - с конца таблицы продаж начиная и к началу. и проверяя на непревышение суммы удаляемой строки над остатком суммы отмены продажи... а если там хронология не строгая и сумма отмены обезличено-итоговая (без кода товара) - так и вообще получается довольно непростая комбинаторная задача "рюкзака". хотя - ну куда это я несертифицированный лезу учить.. малчумалчу. |
|||
51
Duke1C
09.07.18
✎
20:42
|
+50
Ну в свете (31) код из (27) это ... я промолчу на ночь глядя (42) правильно начал подсказывать, только СписокЗначений тут нафик не нужен: Для А = 4 по ФайлЗагрузки.КоличествоСтрок() Цикл Состояние("Загрузили :" + А + " Строк"); СтрокаИзФайла = СокрЛП(ФайлЗагрузки.ПолучитьСтроку(А)); Если ПустаяСтрока(СокрЛП(СтрокаИзФайла)) = 1 Тогда Продолжить; КонецЕсли; СтрокаИзФайла = СтрЗаменить(СтрокаИзФайла,";",РазделительСтрок); НомерСтрокиОперации=СтрПолучитьСтроку(СтрокаИзФайла,1); ДатаОперации=СтрПолучитьСтроку(СтрокаИзФайла,2); Ну и так далее |
|||
52
Kigo_Kigo
09.07.18
✎
22:09
|
(50) (51) Свои кода комментируйте, гении кода мля, свои я сам как нить, я просил найти ошибку мне ее нашли, вопросы?
кто как реализует впорос десятиый, работает не трож |
|||
53
PR
09.07.18
✎
23:38
|
(52) У меня вопрос
Ты в школе-то учился? |
|||
54
Kigo_Kigo
10.07.18
✎
10:54
|
(53) нет
|
|||
55
Duke1C
10.07.18
✎
20:55
|
(52) Ну, как бы, ничего личного... И слюной брызгать не надо
Просто вы, батенька, в своей портянке копипастного кода заблудились, вот сразу ошибку и не заметили. И если бы сразу его "вывалили", то глядишь и постов было бы меньше. Принцип - "работает, не трожь" - это конечно святое, и если он для одноразового употребления, то, как говорится - и так сойдёт, но на нормальные "указания" (подсказки) надо реагировать всё же попроще, опять же ИМХО. Еще раз повторюсь, я не стреляю в пианиста - пусть играет как умеет, просто хотелось дать действенный совет, и судя по моим постам, так оно и было |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |