Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Окт 2017, 19:27
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Объединить 2 обработки в одну, 2 формы или одна общая?  (Прочитано 1166 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yuliya_Den

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-11
  • Сайт: 
  • Профессия: Программист 8.1
У меня есть 2 обработки. Функционал одинаковый - загрузка цен из файла cvs и создание док-та «Установка цен номенклатуры». Но для каждой из обработок в файлах загрузки отличаются реквизиты. Реквизиты «1,2,3» - одинаковые в обоих случаях, но в одном случае добавляются реквизиты «4,5,6», а в другом «7,8».
Обработки необходимо объединить в одну, с возможностью выбора типа загрузки (по «4,5,6» либо по «7,8»).

Вот я думаю, как сделать легче и быстрее (очень срочно надо):

Можно сделать 3 формы в одной обработке: 1 форму выбора условия, и 2 отдельные формы для «4,5,6» либо по «7,8», условно ф1 и ф2 (по-сути перетащить существующие в 2 обработках + создать 1 новую). «Форму выбора условия» установить, как Основную. И вызывать по условию либо ту, либо другую  форму «по наименованию» из кода в «форме выбора условия».

Либо вариант 2:  форму сделать 1, и по условию добавлять и заполнять те, либо другие колонки.


Оффлайн Rasty

  • *****
  • Сообщений: 979
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
как вам больше нравиться, так и делайте
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Yuliya_Den

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-11
  • Сайт: 
  • Профессия: Программист 8.1
Ну это понятно. Вопрос, как легче/быстрее/правильнее. Я  все равно и то, и то смутно представляю.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
С одной формой легче жить.

Оффлайн Yuliya_Den

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-11
  • Сайт: 
  • Профессия: Программист 8.1
Но в этом случае надо переписывать механизм заполнения и форму переделывать. А если взять 2 существующие формы, то надо только сделать третью.

Оффлайн Rasty

  • *****
  • Сообщений: 979
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
зачем переписывать то? у вас есть код, который можно выполнять при определенных условиях
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн wise

  • ****
  • Сообщений: 419
  • РЕПУТАЦИЯ: 57
  • КПД: 14%
  • Кто сгорел, того не подожжешь
  • Регистрация: 2013-03-21
  • Сайт: 
  • Профессия: Ученик 1С
(4) сделай одну форму, заодно и код оптимизируешь...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн Yuliya_Den

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-11
  • Сайт: 
  • Профессия: Программист 8.1
Вот легче сказать, чем сделать))).
А не напомните, какие методы гуглить для того, чтобы
 Если ХХХ Тогда ДобавитьКолонки1_2_3 Иначе ДобавитьКолонки4_5_6 ?

Оффлайн Rasty

  • *****
  • Сообщений: 979
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Таблица.Колонки.Добавить("Имя")?
Добавлено: 18 Апр 2016, 16:55

а можно еще видимость устанавливать...
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Yuliya_Den

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-11
  • Сайт: 
  • Профессия: Программист 8.1
получилось следующее:

&НаКлиенте
Процедура ИмпортXLS(Команда)
Если ИмяФайла="" Тогда
Предупреждение("Не выбран файл для загрузки!",30);
Возврат;
КонецЕсли;

ЗагружаемыйФайл = Новый ТекстовыйДокумент;
ЗагружаемыйФайл.Прочитать(ИмяФайла);

НомерСтроки=2;
КолВоСтрок = ЗагружаемыйФайл.КоличествоСтрок();
ТЗ_Данные.Очистить();
Для НомерСтроки=2 по КолВоСтрок Цикл
Состояние("Обработано: " + НомерСтроки + " из " + КолВоСтрок + " "  +Строка(Формат(?(ЗагружаемыйФайл.КоличествоСтрок()=0,0,((100*НомерСтроки)/ЗагружаемыйФайл.КоличествоСтрок())),"ЧЦ=3; ЧДЦ=0"))+" %");
ОбработкаПрерыванияПользователя();
Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки);
Разделитель = ";";
МассивКол = РазложитьСтрокуВМассивПодстрок(Строка,Разделитель);

Если Элементы.Группа_Модель_Номер = Истина Тогда

Группа = МассивКол[0];
Модель = МассивКол[1];
Номер = МассивКол[2];

Если ПустаяСтрока(Группа) ИЛИ ПустаяСтрока(Модель) Тогда
Прервать;
КонецЕсли;
ЦенаРозница =  МассивКол[3];
ВалРозница =  МассивКол[4];
ЦенаОпт =  МассивКол[5];
ВалОпт =  МассивКол[6];
ЦенаОпт1 =  МассивКол[7];
ВалОпт1 =  МассивКол[8];
ЦенаОбл =  МассивКол[9];
ВалОбл =  МассивКол[10];
ЦенаОпт0 =  МассивКол[11];
ВалОпт0 =  МассивКол[12];

Если ЦенаРозница = "" Тогда ЦенаРозница = 0; КонецЕсли;
Если ЦенаОпт = "" Тогда ЦенаОпт = 0; КонецЕсли;
Если ЦенаОпт1 = "" Тогда ЦенаОпт1 = 0; КонецЕсли;
Если ЦенаОбл = "" Тогда ЦенаОбл = 0; КонецЕсли;
Если ЦенаОпт0 = "" Тогда ЦенаОпт0 = 0; КонецЕсли;

Если Число(ЦенаРозница) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Группа = Группа;
НоваяСтрока.Модель = Модель;
НоваяСтрока.Номер = Номер;

НоваяСтрока.Цена = Число(ЦенаРозница);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Розница" + ВалРозница);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуГруппеМоделиИНомеру(Группа, Модель, Номер);
Иначе
КонецЕсли;
Если Число(ЦенаОпт) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Группа = Группа;
НоваяСтрока.Модель = Модель;
НоваяСтрока.Номер = Номер;

            НоваяСтрока.Цена = Число(ЦенаОпт);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Опт" + ВалОпт);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуГруппеМоделиИНомеру(Группа, Модель, Номер);
Иначе
КонецЕсли;
Если Число(ЦенаОпт1) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Группа = Группа;
НоваяСтрока.Модель = Модель;
НоваяСтрока.Номер = Номер;

НоваяСтрока.Цена = Число(ЦенаОпт1);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Опт1" + ВалОпт1);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуГруппеМоделиИНомеру(Группа, Модель, Номер);
Иначе
КонецЕсли;
Если Число(ЦенаОбл) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Группа = Группа;
НоваяСтрока.Модель = Модель;
НоваяСтрока.Номер = Номер;

  НоваяСтрока.Цена = Число(ЦенаОбл);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Область" + ВалОбл);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуГруппеМоделиИНомеру(Группа, Модель, Номер); 
Иначе
КонецЕсли;
Если Число(ЦенаОпт0) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Группа = Группа;
НоваяСтрока.Модель = Модель;
НоваяСтрока.Номер = Номер;

НоваяСтрока.Цена = Число(ЦенаОпт0);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Опт0" + ВалОпт0);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуГруппеМоделиИНомеру(Группа, Модель, Номер); 
Иначе
КонецЕсли;

Иначе

    Артикул = МассивКол[0];
Производитель = МассивКол[1];

Если ПустаяСтрока(Артикул) ИЛИ ПустаяСтрока(Производитель) Тогда
Прервать;
КонецЕсли;

ЦенаРозница =  МассивКол[2];
ВалРозница =  МассивКол[3];
ЦенаОпт =  МассивКол[4];
ВалОпт =  МассивКол[5];
ЦенаОпт1 =  МассивКол[6];
ВалОпт1 =  МассивКол[7];
ЦенаОбл =  МассивКол[8];
ВалОбл =  МассивКол[9];
ЦенаОпт0 =  МассивКол[10];
ВалОпт0 =  МассивКол[11];

Если ЦенаРозница = "" Тогда ЦенаРозница = 0; КонецЕсли;
Если ЦенаОпт = "" Тогда ЦенаОпт = 0; КонецЕсли;
Если ЦенаОпт1 = "" Тогда ЦенаОпт1 = 0; КонецЕсли;
Если ЦенаОбл = "" Тогда ЦенаОбл = 0; КонецЕсли;
Если ЦенаОпт0 = "" Тогда ЦенаОпт0 = 0; КонецЕсли;


Если Число(ЦенаРозница) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Производитель= Производитель;
НоваяСтрока.Цена = Число(ЦенаРозница);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Розница" + ВалРозница);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуПроизводителю(Артикул, Производитель);
Иначе
КонецЕсли;
Если Число(ЦенаОпт) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Производитель= Производитель;
            НоваяСтрока.Цена = Число(ЦенаОпт);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Опт" + ВалОпт);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуПроизводителю(Артикул, Производитель);
Иначе
КонецЕсли;
Если Число(ЦенаОпт1) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Производитель= Производитель;
НоваяСтрока.Цена = Число(ЦенаОпт1);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Опт1" + ВалОпт1);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуПроизводителю(Артикул, Производитель);
Иначе
КонецЕсли;
Если Число(ЦенаОбл) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Производитель= Производитель;
  НоваяСтрока.Цена = Число(ЦенаОбл);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Область" + ВалОбл);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуПроизводителю(Артикул, Производитель); 
Иначе
КонецЕсли;
Если Число(ЦенаОпт0) > 0 Тогда
НоваяСтрока = ТЗ_Данные.Добавить();
НоваяСтрока.Артикул = Артикул;
НоваяСтрока.Производитель= Производитель;
НоваяСтрока.Цена = Число(ЦенаОпт0);
НоваяСтрока.ВидЦены     = ВозвратВидЦены("Опт0" + ВалОпт0);
НоваяСтрока.Номенклатура = ВозвратНоменклатурыПоАртикулуПроизводителю(Артикул, Производитель); 
Иначе
КонецЕсли;

КонецЕсли;
КонецЦикла;

КонецПроцедуры

Буду тестировать...
Добавлено: 19 Апр 2016, 09:12

Ребята, а чтобы при условии «х» колонки с 1 по 3 добавлялись и заполнялись, а с «4 по 5» - наоборот сворачивались, использовать ТаблицаЗначений.Свернуть ?
 

Добавлено: 19 Апр 2016, 10:40

Это "Видимость", а не "Свернуть". Вот так в итоге работает:

Элементы.ТЗ_ДанныеАртикул.Видимость = Истина;
Элементы.ТЗ_ДанныеПроизводитель.Видимость = Истина;

Элементы.ТЗ_ДанныеВидЦены.Видимость = Ложь;
Элементы.ТЗ_ДанныеГруппа.Видимость = Ложь;

Последний раз редактировалось: Yuliya_Den; 19 Апр 2016, 10:40. Причина: Объединение сообщений


Теги:
 

Не работает метод Сдвинуть() по отношению к программно добавляемой колонке1С:Предприятие 8.3 (8.3.10.2561) Управление производственным предприятием, редакция 1.4 Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 172
Последний ответ 21 Сен 2017, 10:33
от Insider
Редактирование формы "Настройки пользователя".

Автор t955938Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4681
Последний ответ 03 Авг 2011, 11:45
от t955938
получаю значение реквизита формы, дает значение 0

Автор mikel10Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3314
Последний ответ 12 Июл 2013, 15:35
от mikel10
Как обратиться к функции модуля формы из модуля Менеджера?

Автор TreeDogNightРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4794
Последний ответ 10 Июл 2014, 14:05
от cska-fanat-kz
Настройка формы "Заполнение товаров"

Автор ЖаннаРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 511
Последний ответ 10 Мар 2017, 21:00
от Жанна

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
90 Сообщений
alex0402
54 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
44 Сообщений
AIFrame
40 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
BuhRust
14 Сообщений
AsadRoman
13 Сообщений

* Кто онлайн

  • Точка Гостей: 424
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal