public override t f_modify_item(t args)
        {
            t item = args["item"];

            if (item["tab_name"].f_str() == "customer")
            {

                //создаем форму ввода данных нового контрагента
                frm_cre_edit_item = new customer_info_form(new t() { { "item", item["item"] } });

                //показываем форму как диалог
                frm_cre_edit_item.ShowDialog();

                if (((customer_info_form)frm_cre_edit_item).args["is_done"].f_bool())
                {
                    //в результате деактивации текущего окна (окна поиска)
                    //оно скроется так как предыдущее окно было диалогом
                    //сюда мы попадем когда его закроют - данные введут
                    //поэтом вновь показываем себя
                    Show();

                    //selected_item = ((customer_info.customer_info_form)frm_cre_edit_item).customer;

                    t created_customer = ((customer_info_form)frm_cre_edit_item).args["item"];

                    ///item["item"] = created_customer;

                    item["str1"].f_set(created_customer["name"].f_str()+" " + created_customer["phone"].f_str());

                    lbx_items.SelectedItem = item;

                    f_fill_lbx(new t());

                    //f_touch_lbx_item();

                    //сохраняем созданного контрагента
                    kwj.f_tab_customer_modify_mssql(new t() { { "item", created_customer } });
                }

            }
            if (item["tab_name"].f_str() == "address")
            {
                //создаем форму ввода данных нового контрагента
                frm_cre_edit_item = new address_info_form(new t() { { "item", item["item"] } });

                //показываем форму как диалог
                frm_cre_edit_item.ShowDialog();

                if (((address_info_form)frm_cre_edit_item).args["is_done"].f_bool())
                {
                    //в результате деактивации текущего окна (окна поиска)
                    //оно скроется так как предыдущее окно было диалогом
                    //сюда мы попадем когда его закроют - данные введут
                    //поэтом вновь показываем себя
                    Show();

                    t created_item = ((address_info_form)frm_cre_edit_item).args["item"];

                    //item["name"].f_set(txt_query.Text);

                    item["str1"].f_set(created_item["name"].f_str() + " " + created_item["phone"].f_str());

                    lbx_items.SelectedItem = item;

                    //f_touch_lbx_item();

                    //сохраняем созданного контрагента
                    kwj.f_tab_address_modify_mssql(new t() { { "item", created_item } });

                }

            }

            frm_cre_edit_item = null;

            return new t();
        }
        public override t f_cre_item(t args)
        {
            //создаем форму ввода данных нового контрагента
            frm_cre_edit_item = new customer_info_form(txt_query.Text);

            //показываем форму как диалог
            frm_cre_edit_item.ShowDialog();

            if (((customer_info_form)frm_cre_edit_item).args["is_done"].f_bool())
            {
                //в результате деактивации текущего окна (окна поиска)
                //оно скроется так как предыдущее окно было диалогом
                //сюда мы попадем когда его закроют - данные введут
                //поэтом вновь показываем себя
                Show();

                //selected_item = ((customer_info.customer_info_form)frm_cre_edit_item).customer;

                t created_customer = ((customer_info_form)frm_cre_edit_item).args["item"];

                //формируем guid для нового контрагента
                created_customer["uid"].f_set(Guid.NewGuid().ToString());
                created_customer["wd_customer_guid"].f_set(Guid.NewGuid().ToString());

                //this._args["selected_item"]["str1"] = this._args["selected_item"]["item"]["name"];
                //this._args["selected_item"]["str2"] = this._args["selected_item"]["item"]["phone"];

                //добавляем созданный элемент в кэш времени выполнения
                //запрос f_find() выполниться из кеша что бы не обращаться к серверу
                this._args["new_items"].Add(new t()
                {
                    {"str1", created_customer["name"]},
                    {"str2", created_customer["phone"]},
                    {"tab_name", "customer"},
                    {"item", created_customer}
                });

                f_find(new t()
                {
                    {
                        "f_done", new t_f<t,t> (delegate (t args1)
                            {

                                f_touch_lbx_item();

                                //t.f_f("f_done", this._args);

                                return new t();
                            })
                    }
                });

                //сохраняем созданного контрагента
                kwj.f_tab_customer_add_mssql(new t() { { "item", created_customer } });
                //f_store(new t() { { "item", created_customer } });

            }

            frm_cre_edit_item = null;

            return new t();
        }